Ion: Cross-platform OpenGL library from Google
github.com
github.com
I've been planning a project like that using raw GL, but with these frameworks popping up, the concept might go from experimental to very robust.
The native version is inherently lightweight and the emscripten/browser version could also be very lightweight and efficient, depending on how much attention they pay to that target while developing the framework. Looking forward to see how this plays out.
On the other hand, something like react-native for desktop, coupled with a nice GUI library, could be very interesting.
The sad fact is that most electron applications only use a small fraction of the massive featureset provided by a full browser, and whenever a tiny GUI application gets forcibly bundled with 70+MB of browser runtime, a cute fluffy animal dies. I think this new kind of framework has the potential to save some cute fluffy animals in the long term, though certainly not all of them.
It does not appear to be in the file system.
Since it is also from Google, even though not officially, maybe the Android NDK team could learn a few things about C++ code quality.
Ion's code looks so much nicer than any these APIs
#define NOCRYPT (1) #define NOUNCRYPT (1) at the top of ./third_party/zlib/src/contrib/minizip/zip.c and unzip.c
And that got past the zlib errors on yosemite and built some of the demos (I will post some screenshots on twitter @joeld42, but it's just boxes and stuff). However, there was a linker error later with some json parser (maybe it was in the tests? I can't even tell) that I didn't figure out yet.
I also had to install "ninja" because apparently it needs like six different build systems.
The "ios" targets build... but I don't know what to do with them. I ended up with a directory full of .app files. Maybe zip them and rename them ipa?
Anyways, it looks like there's some cool stuff in there but there's a ton of dependencies and it doesn't really feel "lightweight". I'll definitely keep an eye on this one but it really could use more documentation for people not familiar with google's ecosystem.
If it's not Google's, it's nobody's.
Could go for "Google publishes Ion, a cross-platform OpenGL abstraction."
case a: Bernie Sanders' socks.
case b: Bernie Sanders' campaign promises.
You weren't confused by the nuanced difference in ownership and endorsement, but you learned more about the socks - and may be more interested in them - than if the name was omitted.
"Google Ion" -- officially endorsed project
"Google's Ion" -- something owned/done by Google
Its 2016. There are a number of performant cross-platform systems/languages that have good built-in facilities for these basic plumbing problems.
C++ is an outdated language, and the entire mindset and ecosystem is wasteful and constantly reinventing the wheel. C++ was still sort of relevant when I was playing with it in High School in 1994, but even then it was dated in most ways.
These are some very poor software engineering choices.
Educate yourselves about the Nim programming language.
Stats for SourceForge (maybe out of date): http://www.statisticbrain.com/computer-programming-language-...
This goes for every code line that one writes, most of the time backed up by urban legends and popular beliefs instead of profiling the code.
Whereas other programming languages cultures, tend have a more meaningful approach to optimizing software.
To be fair, he shamelessly bragged about getting the job through nepotism.
You don't have to write these things yourself, but if you're trying to eke out every last drop of performance (either at runtime or build time) then you have the option to do so.
Having been coding since the days of Assembly being a normal language for business applications, I never seen a programming community so obsessed with micro-optimizations per code line, (without using profilers, because programmer knows best), like the C one.
And by correlation the C sub-communities from C++ and Objective-C ones.
Other communities think first into getting their data-structures and algorithms right, use the profiler and then optimize.
Personally, I have my own custom hashmap which provides a 10%-15% performance improvement over the std one for my use case, and I also have custom mutex/thread code similar to the one listed in this library because it provides better performance when no other thread has the lock, and avoids needing to compile/link against the boost equivalent which adds seconds of compile time to any file that includes it.
These are all optimisations that I have tested and profiled though.
The problem I see is when doing applications where doing the work in 100ms or 1s doesn't matter at all.
Yet one will be discussing about bounds checking impact, if i++ or i = i + 1 generate the same code and many other micro-optimizations.
For the type of work I do, I always embraced the STL and never though a second about those issues, yet I was able to fulfill the expectations.
For some applications, manually tending to the basic plumbing is a necessity and not a burden. I.e high performance applications tend to be memory bouns.
I agree that C++ is not a right tool for every job and that as a language it has issues. But those issues are not about verbosity nor about manual memory management - the latter is rather a feature.
Also, that library seems to run on a quite large subset of common platforms. I don't think there is a high level language with as painless integration to as many platforms as C++ does.
The thing with multiple platform support is that it's a really dirty realworld-bound problem. That is, no matter what one does, there will be incompatibilities and unexpected bugs. The best anyone can do, is to pick a platform with as wide userbase on the platforms one wants to support and use that if one wants to minimize headache caused by problems between third party components.
There is no joy in high level abstractions if the execution stalls on implementation related bugs.
I has been written with so solving so many concepts everyone is trying to solve, but don't solve at ALL.
Just open your eyes the solution is right under your nose.
It's hilarious that nobody recognizes blatant trolling on HN