5 programming languages marked for death (article)



  • Pretty good article. Here are the languages the guy picked:

    Perl
    Indeed, even its creators seemed to (implicitly) acknowledge that something was wrong, kicking off work on Perl6, currently under development as a complete revamp of the language. Work on Perl6 started in… the year 2000. Where is it? Who cares? Perl is dead.

    Ok, expected. No complaint there.

    Ruby
    By all accounts, it’s a cool language and everybody has good things to say about it… except Twitter. In April 2011, Twitter announced that they had rewritten much of their code in order to move away from Ruby and its popular Web framework, Ruby on Rails, claiming the platforms were inefficient. That, I would argue, was the day Ruby started to die; over the past three and a half years, interest has begun to wane. If you love Ruby, you can thank Twitter for its demise.

    WTF? I mean, sure, ruby isn't the cool new kind on the block anymore. But my impression is that it has become a stable, mature platform for small to mid-sized sites. Of course twitter needs something faster, but your local pizza place can still use it just fine.

    Disagree with this one.

    Visual Basic.NET
    While Microsoft created C# to target its own CLR runtime, its engineers also created a version of Gates’ beloved BASIC language, named it Visual Basic.NET. The language still bore the syntax of BASIC, but the coding approach was similar to that of C#. Both languages moved forward, but it was inevitable that the world would embrace one (C#) at the expense of the other. That’s why Visual Basic.NET has been reduced to C#’s little stepbrother in hospice care.

    Another controversial one. But IMO true. It's dead. Get over it.

    Adobe Flash and AIR
    For a short time it looked as if AIR would take off, thanks to its use in a popular Twitter platform called TweetDeck, which required users to install the AIR runtime on their computers. That might have opened up millions of PCs for AIR apps, except Twitter bought TweetDeck in 2011 and rewrote it using native code instead of AIR. So much for AIR.

    Steve Jobs gave it the fatal blow. Microsoft finished it off when they abandoned Silverlight. I know people who LOOOOVED them some flash and can't get over the loss. Me? Pfff, good riddance.

    Delphi’s Object Pascal
    The original Delphi and its Object Pascal language actually presented a great working environment; the language was a bit wordy, but the compiler was fast and it was much easier to create Windows programs in compared to Visual Basic (I’m talking pre-Visual Basic.NET here, around 1995).

    The momentum didn’t continue. It’s hard to say just why, since the platform was really quite good.

    I would still take Delphi 7 over any Visual Basic for Windows development. Unfortunately, there was NO attempt made to move into the web world. And Delphi is, perhaps, too stodgy for that. Web developers these days can't be bothered to write corners and semicolons, how would they deal with strict declaration/implementation blocks of Delphi?

    They wouldn't. Bye Pascal, I'll miss you.



    • Perl: not sure. Still has its usage in the *nix world, but yes, no one cares about Perl anymore in web development, although it seems to be very popular in GitHub: position 16 above Scala and Go in 2013.

    • Ruby: the market for Ruby was small and thanks to NodeJS it's getting smaller. I mean, what does Ruby brings to the table that other dynamic languages (Python, PHP, JavaScript) don't.

    • Visual Basic: I was talking to someone a few months ago because he couldn't find a job doing VB that paid well. I told him to ditch it since even MS is doing it. I mean, can you code for the XBone or WP with VB? C# is very mature and easily allows you to transition to other C-style languages.



  • @Eldelshell said:

    Perl: not sure. Still has its usage in the *nix world, but yes, no one cares about Perl anymore in web development, although it seems to be very popular in GitHub: position 16 above Scala and Go in 2013.

    It's all downhill from here, though.

    @Eldelshell said:

    Ruby: the market for Ruby was small and thanks to NodeJS it's getting smaller. I mean, what does Ruby brings to the table that other dynamic languages (Python, PHP, JavaScript) don't.

    Once you set everything up on the dev side, it's probably still the fastest way to scaffold up a serious project and get some backend going. So there's a huge gain in startup speed, but you pay for it long term in reduced performance. That's why it makes sense for startups to start with Rails, and then, like Twitter, move to something faster once they can afford the dev time.

    That said, others are copying rails left and right, and it's not nearly as superior as it used to be.


  • sockdevs

    That’s why Visual Basic.NET has been reduced to C#’s little stepbrother in hospice care.

    That would explain why VB.NET has features C# doesn't, like XML literals, and probably a couple of other things I can't remember because I don't use it (I prefer C# anyway).

    Edit: Looks like it has loads of stuff C# doesn't, judging by this list.


  • Discourse touched me in a no-no place

    So the only one of those that actually comes up in real code is this:

    Firing of events is done with the RaiseEvent keyword, giving the IDE the chance to show a list of available events to pick from. RaiseEvents implicitly checks if there are any event handlers wired up. (in C# raising an event is syntactically identical to calling a procedure, and it requires an additional line of code to check for wired event handlers)

    SERIOUSLY MICROSOFT JUST FUCKING FIX THAT ALREADY.


  • sockdevs

    @Weng said:

    So the only one of those that actually comes up in real code is this:

    >Firing of events is done with the RaiseEvent keyword, giving the IDE the chance to show a list of available events to pick from. RaiseEvents implicitly checks if there are any event handlers wired up. (in C# raising an event is syntactically identical to calling a procedure, and it requires an additional line of code to check for wired event handlers)

    SERIOUSLY MICROSOFT JUST FUCKING FIX THAT ALREADY.

    I fix it, at least in cases where i can fix thios, by having every event autowireup a default listener that does nothing.

    it's usually:

    public SomeEvent event = () => {};
    

    works a treat because it guarantees that every event i write always has an event handler

    of course i still have to be careful about events that other packages declare. I solve them by always registering... ()=>{} as an event handler for them whenever i encounter them!

    of course i make sure to only register that handler once, but it removes a lot of other boilerplate i would have to write otherwise and the overhead of the donothing event handler is small enough that 99.999...% of the time it doesn't matter.


  • sockdevs

    @Weng said:

    So the only one of those that actually comes up in real code

    I'm sure it's easy enough to think of examples for some of the others, especially the XML/date literals, and the Case statement inequality thing.



  • @cartman82 said:

    Steve Jobs gave it the fatal blow. Microsoft finished it off when they abandoned Silverlight. I know people who LOOOOVED them some flash and can't get over the loss. Me? Pfff, good riddance.

    Yep. But, there are still tens/hundreds/thousands of millions of flash files on the web. Games, animations, pretty much every part of the web culture for almost two decades is archived in a .swf form. People of the future will still want to watch those things, so Flash will be around for a while.

    Hopefully sooner or later we will have something that can fully convert swf files to a better format (HTML5), or an open source Flash player that actually works. But I wouldn't bet on it happening soon, every attempt we've seen until now to create third party players has failed miserably.



  • @anonymous234 said:

    People of the future will still want to watch those things, so Flash will be around for a while.

    I've been playing a certain Flash game on and off for about three years now. They better kindly fuck off from my gaming.

    @anonymous234 said:

    Hopefully sooner or later we will have something that can fully convert swf files to a better format (HTML5)

    AFAICT those two have very different paradigms. I don't see that happening at all.



  • Adobe air runs league of legends. Until that behemoth switches it can't truly die out like it needs to.

    But it does need to.



  • The features that exist in one, but not the other also net back frequently to 'You can do the same thing, just a little differently'

    There's only like 2-3 language features that are legitimately missing from C# or VB.NET (each has items that are missing from the other) - and it's usually due to how the language grew and what they were trying to support / who they were trying to convert.

    But really, as long as .NET is around it's unlikely VB.NET will go away - but it's really not that bad of a language.



  • @Maciejasjmj said:

    a certain Flash game on and off for

    Is there a meta joke here, a link without a href, or is discourse at it again?



  • @Matches said:

    a link without a href, or is discourse at it again?

    Close, it's a link not prefixed with http.

    @Maciejasjmj said:

    [a certain Flash game](www.kongregate.com/games/tukkun/anti-idle-the-game) on and off for



  • Thus it is a:

    @Matches said:

    is discourse at it again?

    As not having the http means it gets rendered as an anchor without the href.



  • They only have 3 options:

    1. Break the URL for "not well formed" links.
    2. Just do a hyperlink like any other page, definitely giving you an invalid link in that case (because it'd just append that to the existing URL in the address bar).
    3. Have some special regex parser (because they're using regexes for this) that looks for links that appear remote but aren't valid, and just makes them valid.

    Obviously #2 isn't desired (as I'm sure they got bit by it and decided to make it not the case), so which option do you think they decided to put effort into, considering everything else?


    Of course, since they do have it handle for finding and making valid links out of URLs that are just plain text in posts, I don't see why they couldn't do #3 when it's Markdown or BBCode besides choosing not to.



  • @discoursebot, please appear!



  • @ChaosTheEternal said:

    Obviously #2 isn't desired (as I'm sure they got bit by it and decided to make it not the case)

    Option #2 may not be ideal but it's way the heck better than doing what they're doing.

    If I click on a link and it goes to www.example.com/thing/thing/www.destination.com/thing, I know what's wrong. As poster, I could fix it. As reader, I could remove the prefix to the second www and then it would work.

    But as it's doing now, neither side is fixed. As poster, there's a good chance I wouldn't know what was wrong and wouldn't know how to fix it, leaving it wrong. As a reader, I have no idea how to access it. (E.g. I have no idea how you got the raw text of the post in your "Close, it's a link not prefixed with http." post.)

    IMO, if that was a deliberate decision, it was made by someone who was dropped on their head a few too many times. (Surprise.)



  • Last day without Discourse Bugs: null <t3930p16>



  • I didn't say Option #1 was an acceptable option. It's just what they1 chose, because I guess they felt the result in #2 was worse.

    Really, it should be Option #3, and they're already doing it with plain text links.


    1 The royal "they", because I'm sure we all know who likely mandated it.



  • I don't see how HTML5 games will replace Flash games yet. If anyone has tried to add a simple texfield to an HTML5 game you'll understand what a pain it is.



  • @Maciejasjmj said:

    I've been playing a certain Flash game on and off for about three years now.

    Why would you make something that looks like a link but isn't a link?! What's wrong with you?! Did your parents not hug you enough when you were a child?!



  • Blakeyrat's Second Law.



  • @Eldelshell said:

    I don't see how HTML5 games will replace Flash games yet. If anyone has tried to add a simple texfield to an HTML5 game you'll understand what a pain it is.

    Do HTML5 games have volume controls yet? That was always the weirdest thing about them to me...



  • The only valid option is to not turn the text into a link.

    If a link without protocol handler is invalid, the result should look invalid, so you'd notice the broken link immediately and fix it. Heck, popping a modal error message would be better than this. They're turning it into something they KNOW will be broken and confuse users.



  • @anonymous234 said:

    If a link without protocol handler is invalid, the result should look invalid, so you'd notice the broken link immediately and fix it.

    If you squint very closely, hrefless links aren't underlined. So, invalid-ish?

    It's stupid, since they're able to strip that invalid href, so why not strip the links altogether? Unless this works:

    Jumping from here

    to here


    It does, but no idea what I wanted to prove by this.



  • @Maciejasjmj said:

    It does, but no idea what I wanted to prove by this.

    It also breaks the first link in the same way clicking a link with open external links in new tab option enabled does (the first link loses it's href attribute).



  • @locallunatic said:

    It also breaks the first link in the same way clicking a link with open external links in new tab option enabled does (the first link loses it's href attribute).

    So, single-use anchors. Somebody should patent that.


    Filed under: only today, re-use your href for $0.99



  • Well what you link to is still fine after the click so you could set up multiple things that link there and the others would still work (depending on which anchor you were referring to as single-use), just the DOM doesn't get reset so the first link missing it's href means things are broke.



  • I find it odd that webdevs consider VB .NET and C# .NET so different. In that usage, they're very similar. The differences between them are much smaller when compared to completely different languages.



  • Per-tab volume controls should be a standard browser feature anyway.

    WHAT ARE YOU WAITING FOR, BROWSERS?



  • @anonymous234 said:

    Per-tab volume controls should be a standard browser feature anyway.

    I've felt the lack of this especially since chrome started putting indicators on the tabs that are making noise.



  • Right; but I've always been curious why no HTML5 games I've encountered have had volume controls. Surely it's not because such a thing is impossible, is it? The W3C would never make an oversight that egregious-- oh wait "referer".



  • @blakeyrat said:

    Blakeyrat's Second Law.

    Is there a thread that defines these laws? If not, could you create one for our reference please?



  • @redwizard said:

    Is there a thread that defines these laws?

    I can't even view the thread where I defined it any more, since it's in the Lounge and Discourse is a rabid dyspeptic cow of a forum.



  • "referer" isn't the W3C's fault/responsibility, and volume control is possible with HTML5; youtube does it.



  • yeah, if a thread was created, it'd be as equally lost.



  • @Weng said:

    So the only one of those that actually comes up in real code is this

    XML literals are awesome. Exception filtering is actually useful. VB handles namespaces better.

    Oh.... and case-sensitivity is stupid.



  • @anonymous234 said:

    Per-tab volume controls should be a standard browser feature anyway.

    WHAT ARE YOU WAITING FOR, BROWSERS?

    @boomzilla said:

    I've felt the lack of this especially since chrome started putting indicators on the tabs that are making noise.

    Mixer on:

    Sort of...good luck determining which one controls which tab, though.



  • @redwizard said:

    Mixer on:

    Yeah, I have a similar thing in KDE. Still not as handy as having something right there in the browser.


  • Discourse touched me in a no-no place

    @Maciejasjmj said:

    If you squint very closely, hrefless links aren't underlined.

    (This) site specific. Try it on meta.d - href links aren't underlined there either. Overrides on here:

    /* Underline links in posts - only. (but not @mentions) */
    #wmd-preview a, .cooked a  {
        text-decoration: underline;
    }
    #wmd-preview a.mention, .cooked a.mention  {
        text-decoration: none;
    }
    a:not([href]),
    a[href="#tag"] {
        text-decoration: none;
    }
    


  • Not sure if it's the same thing since one is over a video/audio object but games are made WebGL or canvas. What I mean is that the video tag is a video player by itself and doesn't sit on top of canvas.


  • Grade A Premium Asshole

    Perl will live on for as long as *nix is a thing and server tasks need automated. It may not be a great language, and a lot of it seems a kludge, but you can always count on it being there for scripting tasks. I would agree though that it will not be doing much heavy lifting anymore. Reddit ditched it and that was probably the final nail in the coffin.

    Ruby will not be dying anytime soon. For the SMB, it can be a great choice as you can have something up and running pretty quickly that will do the job, and a lot of the performance issues have been taken care of. There is still a ways to go, but they have not exhausted the low-hanging fruit on the performance side, yet.

    VB.Net should have died a long time ago. Basic should have died a long time ago, period.

    Flash was definitely killed by Steve Jobs, and then Google/Android tap danced on the coffin. If you are not on mobile/tablet platforms, you don't stand a chance when it comes to the web. There are still a lot of sites out there using it though. Local small businesses still have shitty Flash sites, and even more of them have shitty navigation written in Flash (so it can make those nifty noises on mouseover, blech). Good riddance. Fuck Flash, with a cactus.


  • Grade A Premium Asshole

    Now that I think about it, the real question would be why did he not name some of the languages that just refuse to die, but need to? Languages like: Fortran, COBOL, Lisp (and derivatives), F#, PHP, FoxPro (yes, that is still a thing), you could go on and on.

    Or frameworks that just fucking suck, like PowerBuilder, etc. Anything that targets Advantage Database.

    There are lots of things that I would put in front of even VB.Net and way ahead of Perl.



  • While some things (like PHP, FoxPro, COBOL, and PowerBuilder) really do need to die...I'm wondering why you throw Lisp(+derivatives) and F# on that same heap? Are you suggesting that FP-first language design is a completely impractical and futile effort for some reason? And are you implying that Haskell should be killed off, too? :frowning:



  • @Intercourse said:

    Now that I think about it, the real question would be why did he not name some of the languages that just refuse to die, but need to?

    Because a clickbait article with uncontroversial stuff in it has shorter legs than one with controversy (i.e., names some languages that some people actually like).


  • Grade A Premium Asshole

    And it worked. Fucking @cartman82. :smile:



  • Hehehe!!! Just a few more easy likes and I can retire to Bahamas away from all you sorry losers!



  • @Jaime said:

    Oh.... and case-sensitivity is stupid.

    Object object = new Object();



  • @cartman82 said:

    I can retire to Bahamas away from all you sorry losers!

    Which is ironically closer to most of us than where you are now.



  • @Intercourse said:

    Lisp (and derivatives), F#

    They're not that bad to wish them death. And F# has this nice quality of it being possible to incorporate it for some small parts of an otherwise C# project.

    Not speaking from experience - learning a FP language has been somewhere on my to-do list for years - but I do believe they have certain code-shrinking qualities.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.