4 ms·
> C#, Kotlin and Swift are the system API languages of major platforms (MS, Apple, Android). No, the system API of those systems is exposed in C, ObjC and C re
by gdxhyrd 7y ago
> C#, Kotlin and Swift are the system API languages of major platforms (MS, Apple, Android).
No, the system API of those systems is exposed in C, ObjC and C respectively.
You may be thinking about the most common language in those platforms nowadays (and their respective APIs).
- fluffything 7y ago> No, the system API of those systems is exposed in C, ObjC and C respectively. This is incorrect. Microsoft doesn't have a C compiler, only a C++ compiler, so the lower level language on Windows is C++. Yet for application development, the application language is C#. On Apple, the lowest level language is ObjC, and the application language is Swift. And on Android, its C + Kotlin. Doing application development on, e.g., Android, using the C NDK, is pretty much unsupported, since the NDK is mostly undocumented, and changes often. The only stable API for application development is Java, or Kotlin.
- LessDmesg 7y agoIt's still C all the way down, even in 2019. Amazing how far crappy, badly thought out, ubiquitous, low entry barrier languages can go. More than 40 years of memory errors, out of bounds errors, broken metaprogramming, undefined behavior, lack of error handling, type safety, abstractions and intelligent design in general, all served under the clunky syntax sauce. And it still powers our world. Worse is better, indeed.
- LASR 7y agoIt's not the question of what's better or worse. It's about what's already there. Within any large enough network where some level of consensus is able to be formed, you will see conventions start to form. Once these conventions form, they are almost undefeatable. But the most intersting thing is that they are undefeatable, even if there is complete consensus that they should be. Take for example, the imperial units. I think the vast majority of American engineers would agree about its shortcomings. But it can't go, simply because it's already there. C is the same. Look at any modern natively compiled language. They will always come with some easy ways to bind to C. Because to not do so would be a stillborn language. So even in tech, where things evolve extremely rapidly - compute power/$ has improved a million x since the days of C, C still lives, and is the underlying basis of everything. Because conventions.
- gdxhyrd 7y ago> crappy, badly thought out, ubiquitous, low entry barrier languages It is easy to criticize designs that are 47 years old in today's context. I am betting you wouldn't have done a better job half a century ago either.