3 ms·
C, C++ and Go are going strong. All operating system kernels we currently use are in C, as well as most low level drivers and libraries. Most PC client applicat
by frik 11y ago
C, C++ and Go are going strong. All operating system kernels we currently use are in C, as well as most low level drivers and libraries. Most PC client applications are in C++ including most video games. Common web servers are in C. They will be around for many more decades.
Go already replaces Java and dotNet as a leaner more suitable server language in some companies. Nodejs and Go apps (+ JS in the web browser) replace older CRUD web apps written in Ruby/Python/Perl. Most languages will stay around for a long time, although a less popular for beginners.
Java and dotNet will have a harder stand. On the one hand dynamic typed languages like Lua, Javascript and Hack/PHP with their JIT compilers are already (almost) as fast and allow developers to be more productive while still offering optional typing when/where speed matters. On the other hand new static compiled languages get more approachable (Go, Rust, Swift), are faster and use less memory.
Paradigm shifts surfaced exotic languages and trends. So Erland/Elixir, Go, Nodejs and others are very popular for todays web services.
- pjmlp 11y agoJava and .NET have AOT compilers so compilation to native code is not a point. They have support for generics and FP like programming that Go will never get. Go will never have the access to the system resources on Windows and Windows Store like .NET does. Go will never had access to Android frameworks like Java does. Go doesn't have a UI toolkit like JavaFX and XAML. All companies selling IoT SDKs are paring Java with C stacks. Go doesn't have the IDE tooling support that Java and .NET enjoy. Java and .NET having a hard time? Only if one is living in a bubble.
- frik 11y agoSome of your info is a bit outdated. Speaking of Go, it's appearently commonly used for server side services/apps. Well the same can be said for Java and C#/F#/VBNet. All applications we all use on the client side are C/C++/ObjectC/web apps. (exceptions are maybe Eclipse/IntelliJ, mind that Visual Studio is C++). Java on Android is an exception for legacy reasons (Google bought the Android company; and we pay the price buy using 2x-4x as powerful hardware (CPU cores & memory) comparing to iPhone to get similar UX & latency). Even the Win10 startmenu is still a C++ application for performance reasons. AOT is helpful for certain execution paths like JIT and isn't magic. Even the Win8/10 calculator app has a loading splash screen, the FirefoxOS calc app starts faster. XML based UI languages work, but aren't that great (e.g. resizing the Win10 startmenu isn't what I would call responsive design in comparision what we known from HTML5&CSS3). Beside that you wrote a good comment above: https://news.ycombinator.com/item?id=10568915 https://news.ycombinator.com/item?id=10568915
- pjmlp 11y ago> ll applications we all use on the client side are C/C++/ObjectC/web apps. Not every company is the same. Since when does Apple have server frameworks for Objective-C? WebObjects was re-written in Java. My current customer uses everything native, with web apps just for small CRUD maintenance tasks of a few DB systems. > Visual Studio is C++ Visual Studio is a mix of C++ and .NET code, its UI infrastructure was completely rewritten in VS 2010. > Even the Win10 startmenu is still a C++ application for performance reasons. Have you seen the code? How sure are you that it isn't .NET Native? > Even the Win8/10 calculator app has a loading splash screen, Anyone that knows WP dev, knows those splash screens are optional. > the FirefoxOS calc app starts faster. Which is behind WP and BlackBerry in sales.
- estava 11y agoOne advantage of Go is that more code is dependent on the network which is where Go shines at. Go looks like a hammer when the network looks like a nail. For example, Go was one of the first to start adding HTTP2 support. If Go is always there for network tools, it will creep into areas that perhaps many would not have foreseen like security systems that were previously done in C and C++.