Modern Software Sucks

Discuss science and technology topics here.

Moderators: jamesbond, fschmidt

fschmidt
Veteran Poster
Posts: 2679
Joined: May 18th, 2008, 1:16 am
Location: El Paso, TX
Contact:

Modern Software Sucks

Post by fschmidt »

I have been programming a long time, and I see how putrid modern culture has ruined software. A few decades ago, programmers actually cared about their software. Elegant software was written, things like Unix, C, and Java. Recently all software is just shit. Nothing is elegant. Everything is a disgusting hack. Programming has become the miserable task of making someone else's shitty software tools work.

I spent my whole day today trying to script Adobe Acrobat to do a simple task. I have never seen such pathetic software as Adobe's. I just want to scream "f**k YOU ADOBE!"


Special Offer! FREE 6 Month Membership on ForeignWomen.com! Sign up here.

Meet Foreign Women Now! Post your FREE profile on Happier Abroad Personals and start receiving messages from gorgeous Foreign Women today!

User avatar
Cornfed
Elite Upper Class Poster
Posts: 8425
Joined: August 16th, 2012, 9:22 pm

Post by Cornfed »

It should be obvious that the modern whorporate environment can not generate quality software. Things are broken down into artificial compartments by managers who have no understanding of software development and then programmers have to program within them. This means that no-one can get the big picture in order to come up with elegant solutions and there is no pride of ownership. Then there is the constant administrative harassment under the guise of regulatory compliance and the fact that programmers are "managed" by pathetic incompetents who can't even read code. The system seems to be intended to fail.
User avatar
xiongmao
Veteran Poster
Posts: 2850
Joined: March 9th, 2011, 9:09 am
Location: London
Contact:

Post by xiongmao »

Too much Indian/Asian code being used these days. We Brits learnt our skills on ridiculously underpowered micro computers, so we write tight code.
I quit my boring cubicle slave job and now I'm Happier Abroad...
Do YOU want to date beautiful foreign women? Find out which country's women are best for you, and which dating site to look for them on!
Love Chinese girls? Read my complete guide to Chinese dating.
The_Adventurer
Experienced Poster
Posts: 1384
Joined: August 23rd, 2007, 9:17 am

Post by The_Adventurer »

There's still great software out there. I do most of my art on the French made TVPaint software, which began life on the Amiga computer, over 20 years ago. Back then, software had to work before it was shipped out the door. There were no patches, or nearly monthly bug fixes and updates to be constantly downloaded to fix what should never have been released in the first place, like today. Back then, when that disk shipped, the software had to be damn near perfect. They still do that today. The only software I use without having to save every few minutes for fear of crashing and losing everything.
“Booty is so strong that there are dudes willing to blow themselves up for the highly unlikely possibility of booty in another dimension." -- Joe Rogan
momopi
Elite Upper Class Poster
Posts: 4898
Joined: August 31st, 2007, 9:44 pm
Location: Orange County, California

Post by momopi »

Cornfed wrote:It should be obvious that the modern whorporate environment can not generate quality software. Things are broken down into artificial compartments by managers who have no understanding of software development and then programmers have to program within them. This means that no-one can get the big picture in order to come up with elegant solutions and there is no pride of ownership. Then there is the constant administrative harassment under the guise of regulatory compliance and the fact that programmers are "managed" by pathetic incompetents who can't even read code. The system seems to be intended to fail.
The "system" was originally designed by US DoD (Department of Defense), used by the Navy for the Polaris missile project. PMP methodology's WBS (Work Breakdown Structure) is based on US DoD MIL-STD-881 military standard. The purpose was never to design for elegance, it's to deliver missiles on time that fits in the sub and works (will fly to Russian city and nuke it) when you push the big red button.

Image
fschmidt
Veteran Poster
Posts: 2679
Joined: May 18th, 2008, 1:16 am
Location: El Paso, TX
Contact:

Post by fschmidt »

Sorry but one can't entirely blame corporations (bad as they are) or Indian programmers. The thing is that all software today sucks regardless of its source, whether corporate, government, open source, or whatever. Programmers are part of modern culture too, and so they have no taste anymore. Recent programming languages like Scala are just hideous. It is like political correctness in programming, conforming to stupid arbitrary ideas instead of going for innovative elegance.
User avatar
Cornfed
Elite Upper Class Poster
Posts: 8425
Joined: August 16th, 2012, 9:22 pm

Re: Modern Software Sucks

Post by Cornfed »

fschmidt wrote:I have been programming a long time, and I see how putrid modern culture has ruined software. A few decades ago, programmers actually cared about their software. Elegant software was written, things like Unix, C, and Java.
Isn't Java a disgusting hack?
fschmidt
Veteran Poster
Posts: 2679
Joined: May 18th, 2008, 1:16 am
Location: El Paso, TX
Contact:

Re: Modern Software Sucks

Post by fschmidt »

Cornfed wrote:Isn't Java a disgusting hack?
Well, opinions about languages are subjective and language wars are senseless, but I like Java. That is what I use.

Cornfed, are you a programmer?
User avatar
Cornfed
Elite Upper Class Poster
Posts: 8425
Joined: August 16th, 2012, 9:22 pm

Re: Modern Software Sucks

Post by Cornfed »

fschmidt wrote:Cornfed, are you a programmer?
No.
User avatar
E Irizarry R&B Singer
Veteran Poster
Posts: 2792
Joined: April 18th, 2013, 5:26 pm

Post by E Irizarry R&B Singer »

Java and C# (C-Sharp) can do lovely string manipulations.
C# combined with CAML and LINQ for SharePoint ASP.NET Application pages, ASP.NET Web Apps, XML in XSLT, and PowerShell make an excellent Microsoft programmer weapon.
User avatar
publicduende
Elite Upper Class Poster
Posts: 3381
Joined: November 30th, 2011, 9:20 am

Post by publicduende »

Writing software is a lot like designing and constructing a building. The balance between form and function, elegance and efficiency can be as good as you like, but if the final product doesn't do what the customer wants (or needs) and is not delivered on time, then it's next to useless.
True, back in the 70s and 80s computer programmers were wizkids able to understand how "the metal" (the inner workings of the machine) worked: memory access and management, interrupts, performance, everything was understood and fine-tuned to the last assembly instructions. Then as projects became larger and more complex, and compilers became more popular, more and more of those programmers started to use languages like C or C++, where one had a good mix of lower-level primitives as well as higher level constructs. As compiler became more sophisticated, the machine code they spat out was often of better quality then any programmer could have done by writing in assembly.

The modern software engineering industry is far from those pioneering times, true. There are more developers, and they all resort to very high level programming that completely abstract away a lot of the functionalities of a modern PC. This is partly because the paradigm of the modern PC is that of a modular machine, where capabilities in terms of OS, CPU, memory, graphics, disk etc are not (or cannot be) known in advance. Of course piling abstraction layer over abstraction layer doesn't help with performance, but it does allow for software to be written in a hardware-agnostic, more modular way, which ultimately means it makes the job of developing the required fuctionalities easier and faster. And this is why modern software engineers working in, say, C#, needn't exactly be genuises, can often work in team of relatively specialised members (the GUI guy, the middleware guy, the database guy, the QA/tester etc.).

Of course lots of people can bemoan the end of that "golden age" of software programming, but they cannot forget that:
1) there is much more software in the world right now because more and more software was needed in the first place;
2) in the past 15 years, there have been a lot more software jobs, which translates in more quantity but not necessarily more quality; I would actually say the percentage of good (= competent, passionate, innovative, hard working, etc.) developers is no more than 25% of the total;
3) the software industry is commoditising a lot, and most companies can still get what they want in terms of quality and delivery times by outsourcing to markets where a good developer can be bought for $1000 a month, and a Phd-educated team lead won't cost more than $2500.

So, if modern software "sucks" is because of a mix of factors. I surely wouldn't want to look at huge behemoths like Adobe as examples of good software. A few years ago Microsoft themselves have learned that moving around elephant-sized teams and BUs and getting stuck into politics and infighting didn't help at all. As a consequences, they have created lots of smaller and leaner team, some of which have come up with pretty good examples of software technology. WPF, the latest ASP.NET MVC and Azure, Reactive Extensions are just some of the examples of software that might not be utter perfection, but "doesn't suck" and doesn't pose major problems and learning curves to their users.

If one then refers to software products not meant to the developers community, but to final productivity users, then quality isn't something only related to how fast or sophisticated the product is, but how easy and intuitive it is to use, how fast one can learn the 20% of the functionalities used 80% of the time, how stable it is, etc. About the idea of software being shipped when it's not 100% functional and stable: true, we live in an era when it's dead easy, indeed automatic, to upgrade to the latest version or run the latest patch after downloading it from the Internet. There's absolutely nothing wrong in leveraging new methods of distribution and deployment. Every company shipping sub-standard products should know (and in most cases do know) that they are placing a bit bet on their reputation in exchange for the short-term gain of beating a competitor on time, colonising their market niche a bit earlier and faster, leveraging specific user needs or opportunities, etc.

About the connection to the "whorporate environment", useless to comment...another baseless rant from the usual CF.
User avatar
publicduende
Elite Upper Class Poster
Posts: 3381
Joined: November 30th, 2011, 9:20 am

Re: Modern Software Sucks

Post by publicduende »

Cornfed wrote:
fschmidt wrote:Cornfed, are you a programmer?
No.
I wouldn't have guessed.
fschmidt
Veteran Poster
Posts: 2679
Joined: May 18th, 2008, 1:16 am
Location: El Paso, TX
Contact:

Post by fschmidt »

publicduende, to be honest, I haven't been following the latest technologies for years. But the reason for this is that they have been declining for years and about 5 years ago I decided that the crap wasn't worth my effort to follow anymore. It has gotten to the point where if I need some function, it is easier for me to code it myself than to look at the horrible libraries out there.

So I ask you to point out one new technology where I will look at it and say "wow, that's neat". Some examples of this from the past were neat ideas that weren't practical, but at least they were fun and interesting. Examples include Lisp, APL, and Tcl. Examples of neat practical languages include C, Java, Python, and Lua.

When I write code, sometimes I toss it up on Google Code just in case anyone else may want it. But I know they won't want it because I focus on simplicity, not programmatic political correctness which is what the idiot modern programmers want. You can see some of my stuff here:

http://code.google.com/u/108023520737918088445/
User avatar
E Irizarry R&B Singer
Veteran Poster
Posts: 2792
Joined: April 18th, 2013, 5:26 pm

Post by E Irizarry R&B Singer »

publicduende wrote:Writing software is a lot like designing and constructing a building. The balance between form and function, elegance and efficiency can be as good as you like, but if the final product doesn't do what the customer wants (or needs) and is not delivered on time, then it's next to useless.
True, back in the 70s and 80s computer programmers were wizkids able to understand how "the metal" (the inner workings of the machine) worked: memory access and management, interrupts, performance, everything was understood and fine-tuned to the last assembly instructions. Then as projects became larger and more complex, and compilers became more popular, more and more of those programmers started to use languages like C or C++, where one had a good mix of lower-level primitives as well as higher level constructs. As compiler became more sophisticated, the machine code they spat out was often of better quality then any programmer could have done by writing in assembly.

The modern software engineering industry is far from those pioneering times, true. There are more developers, and they all resort to very high level programming that completely abstract away a lot of the functionalities of a modern PC. This is partly because the paradigm of the modern PC is that of a modular machine, where capabilities in terms of OS, CPU, memory, graphics, disk etc are not (or cannot be) known in advance. Of course piling abstraction layer over abstraction layer doesn't help with performance, but it does allow for software to be written in a hardware-agnostic, more modular way, which ultimately means it makes the job of developing the required fuctionalities easier and faster. And this is why modern software engineers working in, say, C#, needn't exactly be genuises, can often work in team of relatively specialised members (the GUI guy, the middleware guy, the database guy, the QA/tester etc.).

Of course lots of people can bemoan the end of that "golden age" of software programming, but they cannot forget that:
1) there is much more software in the world right now because more and more software was needed in the first place;
2) in the past 15 years, there have been a lot more software jobs, which translates in more quantity but not necessarily more quality; I would actually say the percentage of good (= competent, passionate, innovative, hard working, etc.) developers is no more than 25% of the total;
3) the software industry is commoditising a lot, and most companies can still get what they want in terms of quality and delivery times by outsourcing to markets where a good developer can be bought for $1000 a month, and a Phd-educated team lead won't cost more than $2500.

So, if modern software "sucks" is because of a mix of factors. I surely wouldn't want to look at huge behemoths like Adobe as examples of good software. A few years ago Microsoft themselves have learned that moving around elephant-sized teams and BUs and getting stuck into politics and infighting didn't help at all. As a consequences, they have created lots of smaller and leaner team, some of which have come up with pretty good examples of software technology. WPF, the latest ASP.NET MVC and Azure, Reactive Extensions are just some of the examples of software that might not be utter perfection, but "doesn't suck" and doesn't pose major problems and learning curves to their users.

If one then refers to software products not meant to the developers community, but to final productivity users, then quality isn't something only related to how fast or sophisticated the product is, but how easy and intuitive it is to use, how fast one can learn the 20% of the functionalities used 80% of the time, how stable it is, etc. About the idea of software being shipped when it's not 100% functional and stable: true, we live in an era when it's dead easy, indeed automatic, to upgrade to the latest version or run the latest patch after downloading it from the Internet. There's absolutely nothing wrong in leveraging new methods of distribution and deployment. Every company shipping sub-standard products should know (and in most cases do know) that they are placing a bit bet on their reputation in exchange for the short-term gain of beating a competitor on time, colonising their market niche a bit earlier and faster, leveraging specific user needs or opportunities, etc.

About the connection to the "whorporate environment", useless to comment...another baseless rant from the usual CF.
I already know about the level of ignorant abstraction in 4GL and now 5GL languages with kernel API's or just API's in actually speak to assembly language of o's and 1's. C# and J2EE are very highly-leveled and concrete examples of emulating the aforementioned.

Good example: sorting algorithm. That doesn't have to be coded in several lines of code in C++ or ANSI C anymore. That can be done in ONE LINE OF CODE: method and parameters on the same line.

Object-oriented data structures like hash tables and dictionaries are trivialized by one line of code now with x-amount of parameters via method call and if applicable a data structure return value.

PS: HEY MAN! You could have said VB.NET in lieu of mentioning C# as being so high-level that geniuses aren't required. Arsehole. LOL
User avatar
publicduende
Elite Upper Class Poster
Posts: 3381
Joined: November 30th, 2011, 9:20 am

Post by publicduende »

fschmidt wrote:publicduende, to be honest, I haven't been following the latest technologies for years. But the reason for this is that they have been declining for years and about 5 years ago I decided that the crap wasn't worth my effort to follow anymore. It has gotten to the point where if I need some function, it is easier for me to code it myself than to look at the horrible libraries out there.

So I ask you to point out one new technology where I will look at it and say "wow, that's neat". Some examples of this from the past were neat ideas that weren't practical, but at least they were fun and interesting. Examples include Lisp, APL, and Tcl. Examples of neat practical languages include C, Java, Python, and Lua.

When I write code, sometimes I toss it up on Google Code just in case anyone else may want it. But I know they won't want it because I focus on simplicity, not programmatic political correctness which is what the idiot modern programmers want. You can see some of my stuff here:

http://code.google.com/u/108023520737918088445/
It depends on what you mean by "simple" or "neat". If you mean a concise and "pure" syntax, you can look at some of the (semi-)modern functional languages like Haskell, Erlang and to a lesser extent OCaml and F# (which is the Microsoft version of OCaml). There are also languages that have evolved organically over time and, despite being neither concise nor neat, offer a wealth of features that are hard to beat. I believe C# is a very good example of a general purpose language that has borrowed the best from different paradigms and integrated it either at the language or API level. Here's a very good resource on the latest C# 5.0

http://www.amazon.com/5-0-Nutshell-The- ... 1449320104

Java started up as a great concept, but has suffered by the lack of thrust typical of decentralised authority/consensus development models. Too many gurus debating whether this or that feature had to be added or not meant Java has remained relatively stale. Java does have an edge in terms of optimised API available in the open source: one example are highly-concurrent data structures - very hard to find something better in the .NET world. The more interesting things happening in the JVM space are definitely not new version of Java. You could have a look at Clojure or Scala.
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Science and Technology”