On my annoying radar today - devs who learn one language and then *insist* on using it for everything, even when it makes absolutely zero sense.

"Ooh I'd like to do some microcontroller development. But I only know Java. How do you run Java on a microcontroller?"

"...You don't."

"...but I heard a talk where someone did it. Look, there's this microjava page. How do I use it?"

"It's an interesting technical demo, but that's it. Dude, just learn C. It's not hard, Java has C style syntax anyway and this way you can...."

"...but I only want to use modern programming languages. C is irrelevant these days, it's pointless me learning it."

"It's definitely still relevant if you want to program a microcontroller."

"...but I want to do that in Java."


  • 27
    In before js devs get butt hurt!
  • 16
    "...but I only want to us modern programming languages."

    And that person then comes up with Java? Sorry but someone like that is someone you can't take seriously.
  • 9
  • 1
    The reason is it takes so long to be good at a particular language, that you don't want to spend years learning that all over again with a new language.
  • 0
    @halfflat Have a look at sunspots - I actually think I've still got some somewhere...
  • 6
  • 8
    @Nanos I'm of the opinion that the hallmark of a good programmer is the ability to learn new programming languages quickly. So "I already spent years learning Java" isn't a good excuse.
  • 3
    You could say he should program it in assembler. It is valuable to how to program something in assembler, at least for 1 architecture.

    But saying C is irrelevant 🤦. How many of his Software would run without C and without libraries, kernels, drivers, and interpreters written in C? The only other option is C++ and it isn't that hard to learn C when you know C++-.
  • 0
    Christ! It's like knowing how to use a chainsaw and only a chainsaw. And then start plumbing, with a chainsaw.... "Can you stop the leak"? "Sure, but i want to do it with a chainsaw"
  • 0
    @Rambolus @AlmondSauce I present tinygo.org
  • 1
    @darkmiko I fully agree with that (I've lost count of the languages I know so it's easy to agree). Most of the time learning a language will expand your knowledge and can be done quickly. As most languages itself have limited syntax (well not C++) and are similar to what you know.

    To fully idiomatically write things in a language leveraging the stdlib and other frameworks fully usually is quite an investment however and when a language can do it well enough I'm willing to concede. We don't need a scalpel when a versatile camping knife will suffice.
  • 1
    > hallmark of a good programmer is the

    > ability to learn new programming

    > languages quickly.

    I'm reminded that when I am learning a new language, that a single line of code can take me an hour, why, because of bugs..

    Not my bugs !

    No, bugs in the language, it isn't quite working according to the documentation, so I have to google to find out why my particular code is causing an issue, to find out that, oh it doesn't work perfectly if you do X and Y..

    So I have to find out a workaround.

    Every bloody line is like that !

    Until you've spent months learning all the little quirks of that particular new language, and then you can be, slightly productive.

    I tend to find each language does things in a different way to others. ( Dbase II for example has no goto command.. )

    So you end up again, trying to figure out how to do something that was really simple in the last language you used, but is horribly complex in this one.
  • 0
    Sure, I can figure out how to add 2+2 in 5 minutes ( Unless its yet another Office compatible version Spreadsheet that isn't 100% compatible and takes me ages to find out just how to add up two bloody numbers ! Or that it has no delete selected text mode, no you have to delete each line manually.. ), its all the other complicated stuff that takes ages to learn.

    I think its maybe 3 years for me to get good at a language and 5 years to get great at it.

    And perhaps only great in those areas I'm focused in, ask me to do something in another part of the language I've never used before, and I'll be lost for weeks no doubt !
  • 1

    Reminds me of my favourite screwdriver, who needs a selection of bits when you can just jam it in there !

    Amusingly, when I was putting my 3D printer together, the bolts/screws was so cheap and soft, once you did them up, that was it, your never undo them again !

    So, one mistake, and the bit no longer fits, its all lose..

    Damn, if only I had a screwdriver like thing just the right size that would fit..

    Oh wait, I do !

    Now, why didn't I just do that the first time, instead of wasting an hour trying all kinds of other size bits..

    Hammers are also a common tool I notice..

    I remember fixing a plumbing issue with a hammer once, the plastic pipe work was full of crusty pee, so hitting the pipes repeatedly would break it up and the blockage was finally removed.

    All in a great big rush..

    Remember that the next time you pee in the sink. :-)
  • 1
    I'm reminded of welders, everything needs welding..

    3D printers, everything can be printed, who needs to weld anything !

    I like bolts, so where is that drill !

    Maybe one day when I have the money and time, I might learn to weld..

    For now, I'm still learning about nuts & bolts..

    And washers !

    Nord-Lock washers I hear are the best.

    But I wonder, do they need to be correctly sized to match the thread of your bolt.. ?
  • 2
    Kinda the same discussion with people who use Python for microcontrollers...
  • 1
    @JFK422 In fairness at least MicroPython is a vaguely plausible thing, even if I'd never do any serious development with it. Java is just... beyond ridiculous for that sort of a task.
  • 0
    Imma kod Gugal in Piethun
  • 0
    Java for microcontroller? Not recommended with those stupid garbage collector .... I have one project about a microcontroller which collect EEG signal to movement of some other microcontroller... I tried in Java , is super slow.... Later we coded in C , the performance increased... It took 3.52 Micro second for broadcast message over (Bluetooth) even the RSSI indicate that the devices are near to each other. In C, it took just 2.82 MicroSecond, at least speed up a little bit.

    Other words, you cannot beat the classic C.
  • 0
    @myss No worries, Kotlin and Scala is here to help to get rid of Java.....
Add Comment