Click here to Skip to main content
15,896,912 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Irony Pin
Marc Clifton19-Jul-16 6:27
mvaMarc Clifton19-Jul-16 6:27 
GeneralRe: Irony Pin
charlieg19-Jul-16 3:28
charlieg19-Jul-16 3:28 
GeneralRe: Irony Pin
Foothill19-Jul-16 4:09
professionalFoothill19-Jul-16 4:09 
GeneralRe: Irony Pin
charlieg20-Jul-16 7:15
charlieg20-Jul-16 7:15 
GeneralRe: Irony Pin
KarstenK19-Jul-16 4:04
mveKarstenK19-Jul-16 4:04 
GeneralRe: Irony Pin
R. Giskard Reventlov19-Jul-16 4:43
R. Giskard Reventlov19-Jul-16 4:43 
GeneralRe: Irony Pin
Ravi Bhavnani19-Jul-16 6:02
professionalRavi Bhavnani19-Jul-16 6:02 
GeneralRe: Irony Pin
Ryan Peden19-Jul-16 6:39
professionalRyan Peden19-Jul-16 6:39 
I've also noticed the phenomenon you're noting, I don't believe dynamic typing the cause of it. Python, Ruby, Tcl, and Perl are more than 20 years old, and Smalltalk and various Lisps were very dynamic long before that, so the wide availability of the features they offer isn't new.

In addition, most of the architectural patterns you described work just as well in Ruby, Python, or JavaScript as they do in C# or Java. And there is certainly a ton of poorly architected, badly designed C# and Java out there.

Strong, static typing absolutely helps when it comes to building larger systems. But it won't force good engineering decisions to happen in an environment that doesn't value engineering discipline. In my experience, at least, engineering discipline and good design have been entirely orthogonal to the choice of language. I've seen well designed, well written Python applications that served a ton of users without errors or downtime, and I've worked with buggy C# applications that crashed if you looked at them the wrong way.

All of that aside, I do agree with your premise that good software engineering is becoming more rare. I believe the cause, though, is that many organizations have found that getting software in front of users as quickly as possible, even if it is buggy, is more profitable than designing it well from the start. This is particularly true for startups, but it happens often enough in large companies as well.

On the flip side of that, if you look at some more mature companies that have to serve lots of users at scale, you'll find that they use a mix of dynamically and statically typed languages, and their engineering discipline and principles are strong regardless of what language they're writing in. That kind of discipline has to be valued by leadership, and if it isn't present at the CTO level, it's unlikely it will be present at all.

For the record - I do most of my personal development these days in C#, F# and Haskell, so I'm a big fan of using a good type system. I maintain some Ruby and Python too, though, and I don't think I turn into an undisciplined maniac when I start writing code in those languages. Smile | :)

Edit
One more thought: there's a lot more software in the world now than there was 10+ years ago. Consequently, we need a lot more developers to create it. Perhaps the rapid expansion of the industry has made it difficult to maintain the level of engineering rigor, and also perhaps reduced the average developer ability/talent level?

Also, in disagreeing with your point on dynamic typing, I'm not trying to say that you're wrong; you seem like a thoughtful developer, so I'm sure your opinion is based on personal experience. I just wanted to offer another perspective based on experience.

modified 19-Jul-16 14:12pm.

GeneralRe: Irony Pin
Mark_Wallace19-Jul-16 7:21
Mark_Wallace19-Jul-16 7:21 
GeneralRe: Irony Pin
Mycroft Holmes19-Jul-16 16:55
professionalMycroft Holmes19-Jul-16 16:55 
AnswerRe: Irony Pin
Plamen Dragiyski19-Jul-16 23:00
professionalPlamen Dragiyski19-Jul-16 23:00 
GeneralRe: Irony Pin
Brad Stiles20-Jul-16 1:42
Brad Stiles20-Jul-16 1:42 
GeneralRe: Irony Pin
Gerry Schmitz20-Jul-16 8:31
mveGerry Schmitz20-Jul-16 8:31 
GeneralRe: Irony Pin
webatxcent20-Jul-16 12:06
webatxcent20-Jul-16 12:06 
GeneralHow do rumours start? Pin
Mark_Wallace19-Jul-16 2:11
Mark_Wallace19-Jul-16 2:11 
GeneralWSO FOSW OTD 19. July 2016 2. Hint Pin
HobbyProggy18-Jul-16 22:52
professionalHobbyProggy18-Jul-16 22:52 
GeneralRe: WSO FOSW OTD 19. July 2016 Pin
Kornfeld Eliyahu Peter18-Jul-16 23:07
professionalKornfeld Eliyahu Peter18-Jul-16 23:07 
GeneralRe: WSO FOSW OTD 19. July 2016 Pin
HobbyProggy19-Jul-16 0:26
professionalHobbyProggy19-Jul-16 0:26 
GeneralRe: WSO FOSW OTD 19. July 2016 Pin
Kornfeld Eliyahu Peter19-Jul-16 0:44
professionalKornfeld Eliyahu Peter19-Jul-16 0:44 
GeneralRe: WSO FOSW OTD 19. July 2016 Pin
HobbyProggy19-Jul-16 0:58
professionalHobbyProggy19-Jul-16 0:58 
GeneralRe: WSO FOSW OTD 19. July 2016 1. Hint Pin
Kornfeld Eliyahu Peter19-Jul-16 1:06
professionalKornfeld Eliyahu Peter19-Jul-16 1:06 
GeneralRe: WSO FOSW OTD 19. July 2016 1. Hint Pin
HobbyProggy19-Jul-16 2:22
professionalHobbyProggy19-Jul-16 2:22 
GeneralRe: WSO FOSW OTD 19. July 2016 1. Hint Pin
U. G. Leander19-Jul-16 1:08
professionalU. G. Leander19-Jul-16 1:08 
GeneralRe: WSO FOSW OTD 19. July 2016 1. Hint Pin
HobbyProggy19-Jul-16 2:21
professionalHobbyProggy19-Jul-16 2:21 
GeneralRe: WSO FOSW OTD 19. July 2016 2. Hint Pin
Duncan Edwards Jones19-Jul-16 2:55
professionalDuncan Edwards Jones19-Jul-16 2:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.