Just from my experience in the C job market. It's usually firmware related jobs which means you also need knowledge of MCUs like Microchop/Atmel/ARM, etc. If I was in your shoes I would pick up Go or Rust. (A LOT of projects/companies are going in this direction) Go is basically C and Python. I've been a long time PHP programmer and after using Go I haven't looked back at PHP since. I know PHP introduced Composer and some other things, but I feel like it's going the way of Zend making shit more bloated then it needs to be, but that's my two cents. On Sun, Jan 10, 2021 at 5:35 PM Joseph Sinclair via PLUG-discuss < plug-discuss@lists.phxlinux.org> wrote: > C and C++ are mostly used for shrink-wrap applications and libraries. The > Linux Kernel is still C and the Windows Kernel is mostly C++. > About 90% of business applications are Java. It's the most widely used > language and platform for web-based applications and microservices. The > Spring platform is very popular, but I'd actually recommend looking at > Eclipse microprofile (microprofile.io, quarkus.io for a good > implementation) for microservices, it's much lighter and faster. > Node.js is popular with "full stack" shops. It's very quick to pick up, > but extremely difficult to build non-trivial systems and maintain them. > The single-thread nature of the system and dealing with javascript async > constructs can be particularly difficult. > For desktop applications in JavaScript (not ideal, but some entities > want this) there is the Electron framework. Microsoft likes this a lot, > and some major Microsoft applications, like MS Teams or VSCode, are written > in Electron. > If you're looking to develop systems for Windows only (unlikely, but > possible), then .Net and C# are widely used. > Mac is kind of a grab bag, but Objective-C is still pretty popular. > > A lot depends on what one wants to learn and why. > Just learn something? Perhaps Java as it's very widely applicable. > Learn something as a challenge? C++, it's probably the hardest to learn > to do well, and can build extremely complex systems. > Learn something quickly useful? Go, Python, or Node.js. These are > popular, quick to get started, but you have to be aware you can design > yourself into a corner very quickly, and maintenance can get difficult. > Transition from PHP to more general-purpose systems? Go is a good place > to start; it's designed from the ground up as a language for new or > transitioning programmers. It requires you follow very strict rules, > including an enforced style guide, but it's also easier to write "correct" > code than most alternatives. > Other goals might point to other alternatives, it all depends on the > purpose. > > > On 2021-01-10 04:46 PM, Matt Graham via PLUG-discuss wrote: > > On 2021-01-10 15:52, Keith Smith via PLUG-discuss wrote: > >> I'm a PHP dev. I am wondering about the value of learning C on Linux. > > > > C is not generally used for new projects (other than libraries, C > libraries can work with any other language) these days. Managing your own > memory is potentially faster than having things be garbage-collected, but > it provides an excellent way to shoot yourself in the foot because people > are bad at managing memory. It'd teach you how much patience you have, and > potentially how slow PHP is by comparison, but I don't think it'd provide > much value in 2021. > > > >> What would you recommend learning C on Linux or all of Java? > > > > Neither. No one's using Java for anything but Android applications now, > and Google are trying to push Kotlin for those. Java is also a total PITA > as it pretends to be high-level while requiring almost as much boilerplate > as C does.[0] wordpress is everywhere, so that'll guarantee employment for > PHP people despite the language being unfashionable. node.js is everywhere > now for reasons which make no sense to me. If you end up having to > maintain something half-assedly written in node.js, you will need some > familiarity with its weirdnesses.[1] If you don't know node.js already, > learn that. > > > > IMHO, if you want to learn something old-school, go for C++ not C. > Classes are sort of useful for real-world problems, and you now have the > option to use auto_ptr to ease memory management woes. > > > > [0] Java is ~= COBOL translated to the 2000s. > > [1] node.js is ~= Perl translated to the 2010s. > > > --------------------------------------------------- > PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org > To subscribe, unsubscribe, or to change your mail settings: > https://lists.phxlinux.org/mailman/listinfo/plug-discuss