For the first time in the history of TIOBE's index, Java has slipped out of the top two, leaving Python to occupy the spot behind reigning champion, C.
I actually am less pissed about Fortran than I am with Java. My school is applied math and physics, like, I get it, physicists still use Fortran a lot. Alright. I know there are some legitimate reasons for that, although part of it is just inertia. But why oh why do we start out by learning Java? Like, there is literally no fucking point. It is in no way similar to fortran, and it's just clunky and weird and nasty. Even worse, we had to use some sort of "educational" IDE called BlueJ which just feels straight out of the 90s and it is legitimately horrible and crashes all the time. Like, either go all out with C++ from beginning to end (as they do in other schools) or do Fortran from beginning to end, or even just teach fucking python first semester, then go to Fortran if you so insist. Or don't ever go to Fortran and just teach Python, it is much more useful to, like, 99% of people. Fucking boomers...
I learned to code in python (then learned R and bash) so I relate everything to it and I'm probably a fanboy, but it really looks like the easiest to learn to code in.
Once upon a time, it was the dominant language (still kinda is), and it's halfway between the laziness of a scripting language that does most things for you (can teach bad habits) and a more hardcore language like C (which is bad for beginners and forces you to do a lot of extra work.)
No language since strikes that balance quite so well while still being a good teaching tool for beginners. Maybe C#?
Teaching programming is always gonna be a pain in the ass and is always gonna be half irrelevant by the time you're done with it.
We're not supposed to be programmers anyways, all we need is a scripting language to run a few dumb scripts. We learn all that OOP in the first semester that we just never fucking touch again, it's utter clown shit.
I remember sitting in on a CE class once while, as a "challenge," their assignment was to purposefully use a binary tree wrong, and to make it using a 2d array in C. They were not only learning something they weren't taught to understand and would never use again, they were being forced to use it wrong on purpose.
It's a symptom of the fact that programming developed out of the computer science discipline, coming out of the Math major department. So there's never been a good, cohesive way to just teach the basics to people. It's always carrying all of this stupid baggage along with it.
Oh, I forgot to mention the best part: in the exams, we have to write the code ON Paper with a pen etc. That's right, we don't even have a computer next to us or anything, we write down the code on a sheet of paper with no other aid. And it doesn't help that the asshole professor will often detract many points for forgetting a semicolon.
Ugh that's godawful. Reminds me of my last interview, where I had to write compile-ready Java code on a fucking whiteboard. After that I decided I would never again write code in an interview. If someone wants to know if I can code, I can provide them with some code I've written, but I'm never doing another whiteboard coding exercise again.
This is a pretty subjective distinction. I mean everyone agrees that vi is a text editor and Visual Studio is an IDE but most programs in the middle, especially the ones that support extensions, can be considered both. A lot of professional programmers are using things like VS Code, Sublime Text, or Vim, which are "editors" but have tons of extensions that do all of the auto-completion and compilation you could want.
It was less of a serious point and more of an attempt to dunk on BlueJ, to be honest (if you've ever used BlueJ, you'll surely understand). I ended up arguing the point a bit too vehemently, though, so it ultimately came across as serious, unfortunately.
Dude you're very wrong to even put BlueJ in the same paragraph as other Java IDEs lol. I used Eclipse and yeah, it's kinda clunky sometimes but nothing, and I mean NOTHING, can prepare you for BlueJ. Shit just fucking freezes all the time, it has almost no functionality and the interface is gross. But it's supposed to be "educational" because it portrays objects as boxes or whatever with nodes going from one to the other. It is very hard to explain if you haven't tried to use it, it's just gross even if it didn't crash every 10 minutes.
Alright I am kinda confused now because I don't know that much about programming (again, not studying programming) so I am not sure what term is right, but I'm pretty sure it is an IDE, like, it actually compiles the code and lints and shit. It's just awful at it, but it has an "educational" interface that is just horrid.
Just because it compiles the code doesn't mean it's an IDE. A proper IDE does things like code auto-completion (I virtually never use the } key because the IDE fills it in for me when I hit enter after typing a {, for example, and I almost never type full class names either) and other fancy features like variable renaming across all locations where the variable is used, dependency management, the ability to jump from a reference to a class/method/variable to the place where it's declared, version control integration, and many others.
I had to use BlueJ when I was in college; I'm familiar with it. I just don't agree that it's a proper IDE just because it's got a few more features than Notepad. Any "IDE" where you have to write your own import statements is not worthy of the title IMO.
I don't think very many other schools "go C++ all the way". The best ones probably start with a language like Python and then switch between C, something object-y, and something function. C is probably the most useful as it is lingua franca for Unix and has the ability to work with low level data structures, which every CS student is doomed to study. For applied math and physics, learning some of the big science languages, like R, Python, or Julia, would be good.
Apparently the university of Edinburgh starts by teaching students Haskell, which is an educational power move if I've ever heard of one.
My boomer professors who I guess decided that java is not boomer enough, so we're doing fortran now.
poor soul you
I actually am less pissed about Fortran than I am with Java. My school is applied math and physics, like, I get it, physicists still use Fortran a lot. Alright. I know there are some legitimate reasons for that, although part of it is just inertia. But why oh why do we start out by learning Java? Like, there is literally no fucking point. It is in no way similar to fortran, and it's just clunky and weird and nasty. Even worse, we had to use some sort of "educational" IDE called BlueJ which just feels straight out of the 90s and it is legitimately horrible and crashes all the time. Like, either go all out with C++ from beginning to end (as they do in other schools) or do Fortran from beginning to end, or even just teach fucking python first semester, then go to Fortran if you so insist. Or don't ever go to Fortran and just teach Python, it is much more useful to, like, 99% of people. Fucking boomers...
I learned to code in python (then learned R and bash) so I relate everything to it and I'm probably a fanboy, but it really looks like the easiest to learn to code in.
Once upon a time, it was the dominant language (still kinda is), and it's halfway between the laziness of a scripting language that does most things for you (can teach bad habits) and a more hardcore language like C (which is bad for beginners and forces you to do a lot of extra work.)
No language since strikes that balance quite so well while still being a good teaching tool for beginners. Maybe C#?
Teaching programming is always gonna be a pain in the ass and is always gonna be half irrelevant by the time you're done with it.
We're not supposed to be programmers anyways, all we need is a scripting language to run a few dumb scripts. We learn all that OOP in the first semester that we just never fucking touch again, it's utter clown shit.
No argument there.
I remember sitting in on a CE class once while, as a "challenge," their assignment was to purposefully use a binary tree wrong, and to make it using a 2d array in C. They were not only learning something they weren't taught to understand and would never use again, they were being forced to use it wrong on purpose.
It's a symptom of the fact that programming developed out of the computer science discipline, coming out of the Math major department. So there's never been a good, cohesive way to just teach the basics to people. It's always carrying all of this stupid baggage along with it.
Oh, I forgot to mention the best part: in the exams, we have to write the code ON Paper with a pen etc. That's right, we don't even have a computer next to us or anything, we write down the code on a sheet of paper with no other aid. And it doesn't help that the asshole professor will often detract many points for forgetting a semicolon.
Ugh that's godawful. Reminds me of my last interview, where I had to write compile-ready Java code on a fucking whiteboard. After that I decided I would never again write code in an interview. If someone wants to know if I can code, I can provide them with some code I've written, but I'm never doing another whiteboard coding exercise again.
BlueJ is not an IDE; it's a text editor. You might as well use Notepad.
This is a pretty subjective distinction. I mean everyone agrees that
vi
is a text editor and Visual Studio is an IDE but most programs in the middle, especially the ones that support extensions, can be considered both. A lot of professional programmers are using things like VS Code, Sublime Text, or Vim, which are "editors" but have tons of extensions that do all of the auto-completion and compilation you could want.It was less of a serious point and more of an attempt to dunk on BlueJ, to be honest (if you've ever used BlueJ, you'll surely understand). I ended up arguing the point a bit too vehemently, though, so it ultimately came across as serious, unfortunately.
Lol well I believe you that BlueJ sucks. All of the Java IDEs except maybe IntelliJ are a nightmare.
Dude you're very wrong to even put BlueJ in the same paragraph as other Java IDEs lol. I used Eclipse and yeah, it's kinda clunky sometimes but nothing, and I mean NOTHING, can prepare you for BlueJ. Shit just fucking freezes all the time, it has almost no functionality and the interface is gross. But it's supposed to be "educational" because it portrays objects as boxes or whatever with nodes going from one to the other. It is very hard to explain if you haven't tried to use it, it's just gross even if it didn't crash every 10 minutes.
Alright I am kinda confused now because I don't know that much about programming (again, not studying programming) so I am not sure what term is right, but I'm pretty sure it is an IDE, like, it actually compiles the code and lints and shit. It's just awful at it, but it has an "educational" interface that is just horrid.
Just because it compiles the code doesn't mean it's an IDE. A proper IDE does things like code auto-completion (I virtually never use the
}
key because the IDE fills it in for me when I hit enter after typing a{
, for example, and I almost never type full class names either) and other fancy features like variable renaming across all locations where the variable is used, dependency management, the ability to jump from a reference to a class/method/variable to the place where it's declared, version control integration, and many others.It does some stuff similar to that. It is definitely not a text editor. Wiki seems to agree. I agree it's garbage but it's still an IDE.
I had to use BlueJ when I was in college; I'm familiar with it. I just don't agree that it's a proper IDE just because it's got a few more features than Notepad. Any "IDE" where you have to write your own import statements is not worthy of the title IMO.
I don't think very many other schools "go C++ all the way". The best ones probably start with a language like Python and then switch between C, something object-y, and something function. C is probably the most useful as it is lingua franca for Unix and has the ability to work with low level data structures, which every CS student is doomed to study. For applied math and physics, learning some of the big science languages, like R, Python, or Julia, would be good.
Apparently the university of Edinburgh starts by teaching students Haskell, which is an educational power move if I've ever heard of one.
Other schools or departments or whatever you call them in the same Polytechnic I go to do.
But starting out by Haskell... Wow, that's some big dick move right there. Weird as fuck.