DEV Community

Cover image for Retraction of an Obituary

Retraction of an Obituary

Jason C. McDonald on December 28, 2018

I have an announcement... Javascript is dead! Okay, now, be honest. How many of you just had a momentary flash of "ooh, crud, so what should I ...
Collapse
 
jj profile image
Juan Julián Merelo Guervós

I very much agree with most of what you have said. The developer community is big and growing everyday, and, what's more important, it's difficult for people to just leave what they were using to embrace a new technology just because it does stuff better. I've seen people running MSDOS applications, which they keep tweaking, just because they decided to create them 30 years ago. People keep designing new games for the Amstrad and, probably, even the MSX machines. In part, anything that's difficult enough is a challenge, and gives you street cred. On the other hand, I found jarring something you said in your article. 700 pull requests is a lot of pull requests. Even if people worry about that particular code, it's kind of clear there's no one on the other side vetting and reviewing those PRs. Those PRs address some particular concerns, mean something is not working (or not working correctly) for someone. Most of those people one stale PR away from abandoning that technology, and moving on to Elixir or Go. At the end of the day, technologies don't die, but they get a bit sick and are finally used in small, and slowly decreasing, niches. If they are not taught in workshops, if there's no vibrant user group, if there are no new tutorials, if the new basic technologies are not embedded in them, well, they will eventually stop being widely used, and they will become the next COBOL.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

I've been starting to find that the term 'niches' is a major weasel-word in its own right: it's usually used to claim that the technology is used by "that little group over there," as a way of dismissing its relevance. However, it overlooks the fact that virtually all technologies, once past their fad stage, are best suited for a specific use-case. In other words, all technologies are used in "niches". There are no true one-size-fits-all tools in programming.

Also, COBOL has an active community and user group.

P.S. Just glancing, it looks like some of the older PRs on Rails went stale waiting on the author to do something - fix linter errors, merge a branch, whatever. I've noticed that happens a LOT in open source, and it isn't the fault of the project maintainers. However, the entire first page is all stuff from the past week, so that strikes me as active, but not necessarily unhealthy.

Collapse
 
jj profile image
Juan Julián Merelo Guervós

I didn't mean niche to be dismissive. I use it in the biological sense, which is kinda close to use case. All technologies are used in niches, and Nature abhors vacuum, so there's a technology for every use case. However, you can use niche or use case or whatever, and it's true that most technologies slowly abandon the mainstream (or the top 20 in rankings, or reach their plateau in number of users with new users balancing those leaving them) and get stuck to a few use cases. You can probably create reactive web sites and even web services with Cobol, but you're better off doing it with, well, Ruby or Elixir. It's very likely that you can leverage multi-core architectures with C, but you'll most likely use Go or Rust, instead of looking for some library or whatever.
And you are true about the PRs. Most of them are addressed, some of them are waiting for OP action. Still, there are a lot that are simply stale, like this one, three months old github.com/rails/rails/pull/33911. And if you see 700 PRs to be merged, you'll think twice (or more) before submitting your own; many people will simply let it go.
There seem to be ~40 devs active in any one month github.com/rails/rails/pulse/monthly, and the balance of opens/closes and PRs proposed/merged is quite healthy, this month. But still, the balance of open - closed is -40 this month. A t this rate, it might take 17 years to clear the PR backlog. That's not unhealthy per se, but it would be interesting to look at past history, and get the number of PRs and monthly contributors... declining numbers do not mean immediate death, it just means that, for many use cases it was used before (say creation of dynamic websites) lots of programmers have moved on and are using something else (say Vue.js, Elixir, or Sinatra). Contribution sustainability is always a problem for fully-volunteer open source projects, and a bunch of use cases are sometimes not enough to maintain a project, not to mention develop it further.

Collapse
 
rhymes profile image
rhymes

In other words, when we call a viable technology "dead" on the basis of popularity or personal opinion, we're actually manipulating others to make a technical decision that conforms to our whims, whether we mean to or not!

This is the gist! Well put. It's because we wished all other devs chose our favorite technology

The only real issues about technologies that have moved from popularity to suitability only is finding developers willing to program in such technologies (or even the experts in it).

So long as Phillips screws are sold at my local hardware store, I'll keep using my Phillips screwdriver.

That's the difference. This point is valid if we were talking about a piece of tech frozen in time but tech isn't. COBOL is slowly becoming a liability in financial companies and banks not because there are no modern versions but because there are not enough people to work on it.

Yes, COBOL is alive and well with a community. But is it big enough to stave off the very real issues that companies have?

I'm going to quote from It’s COBOL all the way down:

That’s a problem, because while some schools still teach COBOL and many outsourcing firms train employees in it to meet their employers’ needs, it’s not enough. Someone has to maintain an estimated hundreds of billions of lines of COBOL that remain in use, with billions more being written each year for maintenance and new features.

and

As a result, many companies don’t know exactly how their systems run, because those rules extracted long ago are embedded in hundreds of thousands to tens of millions of lines of COBOL.

It's a very nice read :-)

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Glad you liked the article.

You make some good counterpoints about COBOL. My thought is, how much of COBOL's lack of continued popularity is due to the language's deficits (there are quite a few, I'll readily admit), and how many are because the majority of programmers are infected with shiny-language syndrome?

In other words, could the lack of COBOL developers be in part due to the regular statement that "COBOL is dead?"

Part of the difficulty in eliminating COBOL from the financial sector is its stability. Given how unstable code is, and how many projects fail dramatically, the financial sector is probably flighty about the idea of porting. They'd be trading speed, stability, and proven mathematical accuracy for what exactly? Maintainability is important, but in mission-critical code, it isn't usually worth the trade-off. Thus, it becomes more practical to find/train COBOL developers to patch the existing systems, rather than build new ones.

Besides that, according to some expert articles I read, so far no languages have really proven themselves equal to COBOL in the financial role. So, we have a language with no apparent successor, and a lot of already-stable code that we don't want to break.

So, I'll ask again: is the problem COBOL, or that we've been discouraging developers from learning it?

P.S. Yes, I'm well aware the language has a painful syntax. That's one of the drawbacks.

Collapse
 
rhymes profile image
rhymes • Edited

In other words, could the lack of COBOL developers be in part due to the regular statement that "COBOL is dead?"

I'm too young to know what happened to COBOL but I guess it's both :-) The article I linked talks about the shortcomings of the language itself. I have no idea how recent Cobol dialects are but the GO TO must be hell if used in programs with millions of lines of code

Thus, it becomes more practical to find/train COBOL developers to patch the existing systems, rather than build new ones.

Yep, but they can't keep up with the amount of devs they need in rapport to the amount of code there is.

So, I'll ask again: is the problem COBOL, or that we've been discouraging developers from learning it?

I think it's both. Devs like shiny things, COBOL isn't anymore :-) It's probably also because the landscape of development isn't the same as in the 60s. Web development didn't exist back then, now web development is a huge chunk of the software development industry.

I'll give you another example. I learned object oriented programming with Object Pascal/Delphi. I loved it, it was a good language BUT they were so concentrated on creating GUI when the world was clearly more interested in developing software for the web. Delphi mostly lacked support over there, people jumped ship. Is Delphi dead? Not at all. But it's not just the fault of people saying "don't bother", of that I'm sure.

Python might be dead in 30 years but its "general purposiness" from day 0 is one the reasons why is still one of the languages that people learn every day, even if it will be 30 years old shortly ;-)

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

A good, balanced rebuttal (well, half-rebuttal). Thanks for the added insight!

Collapse
 
matthewekeller profile image
matthewekeller

Javascript is great in its original use case, which is creating a small layer of browser side scripting to add some procedural code on top of your already delivered html and css. Huge javascript frameworks like Angular and React are an overcomplicated mess, and javascript is a horrible server side solution. Why in the world would someone want to use javascript over java on a server? You don't want a compiler and strongly typed language to "move your development left"? Node is a complete CF of a solution. Horrible horrible idea taken to its painful extreme. People are using typescript now because they want a more structured javascript?? That is a logical smell to tell you that the decision was bad to begin with.

Collapse
 
hwolfe71 profile image
Herb Wolfe

Actually it is still possible to deploy Visual Foxpro applications today. I use it in my current role, and it still has an active community of users.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Blinks

I...am quite honestly stunned.

HOW do you do that?

EDIT: Jiminy crickets, you weren't kidding. There's even an open source clone. Obituary retracted. (See edit in article.)

Collapse
 
wolfhoundjesse profile image
Jesse M. Holmes

With WebAssembly gaining traction, none of these are dead. 😏

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
codemouse92 profile image
Jason C. McDonald

No, I've heard it from all sorts of programmers, from many different sectors.

Collapse
 
codemouse92 profile image
Jason C. McDonald

For additional reading, @vnbrs wrote an excellent article on how Ruby is not dead: