3 ms·
> Why make life hard with a low level language Because I'm designing an operating system. None of those languages can do that. Also, I'm a maintainer of 2 of
by junon 5y ago
> Why make life hard with a low level language
Because I'm designing an operating system. None of those languages can do that.
Also, I'm a maintainer of 2 of the top 10 packages on npm. Javascript is not a language I usually jump to when I care about performance or (extreme) portability.
Lastly, C++ != C. They're similar and somewhat compatible, but entirely different at the same time.
- 999900000999 5y ago>Lastly, C++ != C. They're similar and somewhat compatible, but entirely different at the same time. I acknowledge this, but they're both very difficult if you're starting with that. To reframe my argument I'd say no new programmer should use a low-level language as it's so difficult you might just give up. The vast majority of jobs will not require you to build an operating system. I think it's a matter of what your goals are. If you want to build a website or a game, use a high level language, get it done fast and move on of your life. If you want to find a job, you're going to have much better luck using higher level languages and you'll still make just as much as an embedded C engineer ( if not more). For your specific use case,yes you need something like C.
- Jtsummers 5y agoSince this is a discussion of contrarian views, here's mine: Your statement regarding C and C++ for beginners isn't strong enough. No new programmer should program, period. That is, they should not be set in front of a computer to type out even a single line of code that is meant to be executed. They should be taught to think algorithmically, to express their intent in clear and precise language without the aid of a computer to evaluate what they've written and verify it for them, instead relying on their own mind. This doesn't need to last for long, perhaps just the first few weeks of instruction, but it should be present. The alternative is what I've seen throughout my career of people coding first and thinking later. They become dependent on the compiler, the type system, the test suite to do even the basic thinking for them. Those are useful tools (and essential once your programs start to take on any significant scale), but if they're what you reach for first, you're not thinking. And new people to programming should spend more time thinking and less time typing. In a college or high school course, this means assignments that require actual coding should be every 1-2 weeks, at best, and the rest of the assignments should be written. Again, having them express their understanding of the program's algorithms and data structures in clear and precise language first, before they ever type anything up.
- 999900000999 5y ago>This doesn't need to last for long, perhaps just the first few weeks of instruction, but it should be present. This assumes you're learning in an academic environment. I taught myself programming just because I wanted to make some video games. I've done very very well career wise. I will admit I do lack some fundamentals, but I can still get things done. I'm absolutely unashamed to rely upon modern conveniences. Yes I need the strong type system C# provides for any bigger project. I practically need autocomplete, particularly with C# to get anything done. If it's small I can hack it out in JavaScript. I still remember the three lines of code you need to stand up with NodeJS. One of my friends needed a small app done last year, I was able to build it for him and flutter in about a month. In fact modern programming languages are so much easier, I reckon this friend if he put the time into it could have built his own application in a few months. The old guard of Computer Science tendsl to have a very strange gatekeeping to them. Overall, I'd like programming to be less of a foreign thing to the general public. If you learn a little bit of python to reformat some old phone contacts you have, you're very much a programmer. Like not every single person with a driver's license can drive a big rig, not every programmer will be able to build their own operating system from scratch.
- Jtsummers 5y agoI was also self-taught, I started at 8 with BASIC based on source listings in my elementary school math textbook. I read them, typed them, then when I wanted to make my own programs (because I couldn't use the computer whenever I wanted), I wrote programs down and reasoned about them on paper (admittedly not well, I was 8, but I got better). Through high school this was how I programmed. It wasn't until college that I had essentially unfettered access to computers (though only desktops and remote servers at the time, I didn't have a laptop until near the end of my college career). And I did say this was a contrarian view. Georgia Tech's CS 1301 (when I took it, numbers varied) was taught this way through Spring 2001 or 2002, and then they switched to Scheme (SICP) and then Python (not sure what, if any, textbook).
- 999900000999 5y ago
- 908B64B197 5y ago> I'd say no new programmer should use a low-level language as it's so difficult you might just give up. Some schools still teach C and C++ as intro languages. I would not recommend it for a self-learner but in an academic setting it works.
- K0balt 5y agoI don’t understand why people think that C++ is hard. I mean you can make life hard for yourself, and printf is basically a pit in hell, but other than that, it is really easy and approachable. I find JavaScript incredibly confusing, unless you stick to the “good” parts, but then you lose all the library’s. Idk, I like being closer to the metal I guess? It is comforting somehow. Not comforting like machine code ( which I love but hate to use ) but still, not having a clue what I am actually asking to have happen is very anxiety producing.
- t-3 5y agoIt's probably the syntax, which is designed to be similar to mathematics. Self-taught programmers will probably struggle to adapt to BNF if they don't have a strong mathematical foundation.
- mbrodersen 5y agoI agree. I taught myself C as a teenager and easily moved up to C++. Yes C++ is a kitchen sink language. But that is a GOOD thing. You can pick and choose the parts you need to get the job done. No limits.