Hacker News .hnnew | past | comments | ask | show | jobs | submit | more zeroDivisible's commentslogin

I really would want to see Nintendo Switch to get even more mainstream than it is now.

Not that I appreciate their way too (supposedly the anti-piracy / console-locking measures in Switch are first grade?) but this would put pressure on Sony to possibly stop blocking cross-play.


"Silence on the wire" [1] hypothesizes finding the state of systems from the outside world - or based on the lack of information. Found it entertaining to read and this article somehow reminded me about it.

[1] https://www.goodreads.com/book/show/82994.Silence_on_the_Wir...


I got Silence on the Wire after reading your comment. Let's see how it is.


What's the consensus on Metal? How does it compare to OpenGL?


You can’t compare them directly, they’re very different categories of graphics APIs. Metal belongs to the category of “modern low-level graphics API” (which also includes Vulkan and Direct3D 12), while OpenGL is an older higher-level graphics API (which also includes Direct3D 11 and previous).

The low-level graphics APIs like Metal and Vulkan allow for much better performance, but they are much harder to use and require more work from the developer (hence, they’re usually used only by game engine makers). Higher-level graphics APIs like OpenGL are less efficient and have lower peak performance, but are easier to use for individual projects and have the benefit of having existing functional code (no need to rewrite a working project).

Also, OpenGL (and its mobile and web variants OpenGL ES and WebGL) are very portable (macOS, Linux, Windows, iOS, Android, both and native and in browsers), while Metal is macOS/iOS-only.


To be fair - OpenGL was fairly horrible to use directly. It sat in an awkward middle area between "low level enough to be efficient" and "high level enough to be productive".

Maybe I'm biased - every time I looked at OpenGl code I shuddered and ran away to a higher level framework (I'm excluding shader code from this - that's concise enough for me not to mind getting that close to the metal)


So much this! I've been writing OpenGL code on a daily basis for the past 10 years, and I hate it. It works like an API designed in the 1970s. It uses none of the modern features of languages, easily allowing you to pass incorrect data to a function, and giving you almost no clue what, if anything, went wrong. Just look on StackOverflow some time at how many questions are basically, "My previously working OpenGL program is now rendering nothing but a black screen. What went wrong?" And then compare the huge number of different causes. There's no reason they couldn't have improved it along the way, keeping backwards compatibility, and just adding more informative error codes and better use of language features. But they didn't. My feeling is "Don't let the door hit you on the way out."


I don't think that is quite accurate. But you will have to ask a professional game developer for better judgement. Comparatively speaking.

Vulkan, you need to know exactly what you are doing. There are little to no handhelding. You are trying to squeeze out every last 10% of performance in exchange for lots more development time. You need to write a hell a lot more code to do something what you previously thought were simple.

OpenGL is higher level that should be compared to Direct3D 10, not 11. As a matter of fact I will go about saying compare to Direct 3D 9. And unless you are a OpenGL zealot, any sane game developers would have told you Direct X 9 already exceed OpenGL in most way.

Metal is offering what most of Vulkan can do and making it even easier then OpenGL.

Honestly I don't get / understand why all the backlash. OpenGL is deprecated, and it simply means Apple won't be updating OpenGL anymore. Stop asking every god damn year. They have been shipping other deprecated library and API for years! OpenGL is developed in such a way that no one really cares. And designed by committees for maximum backward compatibility. And if you want your App on iOS, you will have to use Metal anyway.


Thank you for explanation. I don't do any graphics programming, besides few toy projects with OpenGL, but my understanding was that one of it's benefits was portability (for a varying definition of "portability").

That's why I wasn't sure what Metal is offering instead.


Except they aren't portable at all for game consoles.


Most of the game devs I follow on Twitter expressed a positive opinion on Metal, particularly over Kronos' Vulkan and of course everyone(that actually has to develop with it) hates OpenGL.


To my understanding, the consensus is that it's, y'know, fine, but nothing particular to recommend it over Vulkan. The main problem people seem to have with it is that it feels unnecessary, like Apple being incompatible for the sake of being incompatible.


Didn't Apple try to work with Krohnos to make Vulkan, but they were taking so long, that Apple just gave up and made Metal and shipped it before Vulkan was finished?


Much better.

A 3D modern API that acknowledges the time of pure C APIs is long gone, with C++14 as shading/compute language, providing math, 3D models, materials, fonts, textures support.

Whereas in OpenGL you are stuck with fishing for libraries, multiple execution paths depending on the extensions and bugs, compiling and linking shaders at runtime without library support, C style APIs and a plethora of deprecated APIs.


Metal is a lower-level API, somewhat similar to Vulkan or Direct3D 12. OpenGL supports driver extensions that can be used to reduce overhead in a similar manner to Metal, but this is largely a moot point when it comes to OpenGL on macOS, as many such extensions are simply not available.


I did not thought about passing a binary to `ld` directly, that's quite cool actually.


A copy of it is present at https://archive.fo/RTVpt


A bit random question, one which qualifies as "I'm here too long and I'm afraid to ask now" territory: what's the difference between i686 and x86_64?

How those two architectures differ?


short version: i686 is a 32bit architecture, and x86_64 is a 64 bit architecture. It adds things like larger registers (and more of them).


32 bit vs 64 bit


I'm using UBlock as well and will never look back, but in relation to:

> And, most importantly, they do not get in bed with the ad companies to arrange for acceptable ads.

Unless things changed, UBlock relies on some of the blocking lists coming from AdBlock so the sentence above might not be 100% true.


In order for this to be true for Adblock Origin, there would have to be a toggle to allow acceptable ads. There is none. Even if their lists whitelisted sites, other lists would negate this.

I'm aggressive with regard to ad blocking and use I use the majority of UBO's adblock lists except for the foreign lists.


>In order for this to be true for Adblock Origin,

I guess you meant UBlock Origin?


A bit of an off-topic question - how would you rate Sailfish and it's interop with Android stuff?


Sailfish itself is much better than anything I have ever used - it's clearly designed for touchscreens. For hackers it's awesome because it's actually a Linux, and you can access shell (as a root, too).

Android support is a bit buggy though - for example Skype sometimes breaks (can not send messages), but Spotify and WhatsApp have worked perfectly fine.

If you are interested in it, they dropped the price a while back (down to 250eur).


The interop with Android works great. Spotify, HN App, reddit is fun, YouTube, Google Chrome and Google Play Store(!) work without problems except for some crashes from time to time.

The only problematic app is WhatsApp because the notifications only go into the native Sailfish notification area when an Android app is in the foreground.

Many apps and copy&pasting between native/Android apps were fixed in the last Sailfish version released 3 weeks ago.


If you like swagger, I'd also check RAML - http://raml.org/

I found it recently, but it looks quite interesting.


Thanks for suggesting this. I glanced over the home page and I am definitely adding it to my list of projects to explore. It claims to support many of the features that I am looking for and it will be fun to kick the tires!


For everybody who wants to start Clojure, I know that there are loads of good resources, but the best one which I had found is this online MOOC:

http://iloveponies.github.io/120-hour-epic-sax-marathon/

Teaches you TDD in Clojure and "forces" you to use git / Github / Travis to test your code.

Highly recommended.

edit: style.


I highly recommend this course as well.

I believe the official link is http://mooc.cs.helsinki.fi/clojure


Do you know of any other TDD MOOCs out there? It's my preferred learning method. Thanks!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: