FP makes things much easier to debug IME - basically because state is explicit you don’t have the snapshotting problem, and it’s easier to isolate components for unit testing.
Eventually the solution to all this is that people need to be introduced to programming via languages that don’t make them worse programmers than they were before. Procedural thinking is a learned helplessness.
I’m still looking for a problem(a programming one) which can be better expressed/solved in Java than in Scala. Granted Java is better for solving HR problems, but if we want to start building the software of the future, we’d better teach our kids a better language/paradigm than Java, otherwise we’ll be stuck rewriting our information systems exactly the same way we’re doing it right now for still another decade. Java isn’t offering any new mean to change the status quo, beside some variations at the syntactic level. Every “innovation”(when you recover from blindness, everything is innovation) is coming from other communities. It’s probably a sign that java has reached its limits and that it’s probably the time to move.
I find the DSL argument curious. Let’s assume it takes 1 month to get up to speed on the DSLs, but afterward, it makes changes to the software happen twice as fast. Then in two months, you break even, and you end up being faster than your competitors.
But “twice as fast” is an insanely conservative estimate. It’s my experience that any system small enough to hold the necessary pieces in my head at once can be developed around four to ten times as quickly (depending on how much backtracking there is as we learn more about the problem). At even a 5x rate, it would be a less than a week before that month-long investment paid off.
If your programmers stay for less time than it takes to learn the DSL and produce a payback, then your hiring process or company culture is severely broken. If the DSL itself takes a really long time to learn, then you might not have hired a very good programmer.
And kind of an aside: doesn’t the existing implementation and architecture form a ‘language’ of its own that new programmers have to get up to speed on? Just because it’s bog-standard Java or Blub doesn’t mean it’s instantly known. Your new hire still has to learn the classes, objects, patterns, and roles in your codebase. Likewise, coding in Blub doesn’t free them of the need to understand the business domain.
These pages are powered by WordPress - Some pages are language sensitive and display the content according to the language-preferences you set in your browser
Some effort is made to keep these pages clean of intrusive/viral stuff, if this succeeded: check here
December 17th, 2007 at 3:34 am
FP makes things much easier to debug IME - basically because state is explicit you don’t have the snapshotting problem, and it’s easier to isolate components for unit testing.
Eventually the solution to all this is that people need to be introduced to programming via languages that don’t make them worse programmers than they were before. Procedural thinking is a learned helplessness.
December 17th, 2007 at 11:33 am
I agree, FP makes debugging easier.
December 17th, 2007 at 2:26 pm
I’m still looking for a problem(a programming one) which can be better expressed/solved in Java than in Scala. Granted Java is better for solving HR problems, but if we want to start building the software of the future, we’d better teach our kids a better language/paradigm than Java, otherwise we’ll be stuck rewriting our information systems exactly the same way we’re doing it right now for still another decade. Java isn’t offering any new mean to change the status quo, beside some variations at the syntactic level. Every “innovation”(when you recover from blindness, everything is innovation) is coming from other communities. It’s probably a sign that java has reached its limits and that it’s probably the time to move.
December 17th, 2007 at 6:30 pm
I find the DSL argument curious. Let’s assume it takes 1 month to get up to speed on the DSLs, but afterward, it makes changes to the software happen twice as fast. Then in two months, you break even, and you end up being faster than your competitors.
But “twice as fast” is an insanely conservative estimate. It’s my experience that any system small enough to hold the necessary pieces in my head at once can be developed around four to ten times as quickly (depending on how much backtracking there is as we learn more about the problem). At even a 5x rate, it would be a less than a week before that month-long investment paid off.
If your programmers stay for less time than it takes to learn the DSL and produce a payback, then your hiring process or company culture is severely broken. If the DSL itself takes a really long time to learn, then you might not have hired a very good programmer.
And kind of an aside: doesn’t the existing implementation and architecture form a ‘language’ of its own that new programmers have to get up to speed on? Just because it’s bog-standard Java or Blub doesn’t mean it’s instantly known. Your new hire still has to learn the classes, objects, patterns, and roles in your codebase. Likewise, coding in Blub doesn’t free them of the need to understand the business domain.
December 17th, 2007 at 8:07 pm
Isn’t his name Josh Bloch ?
thx, I corrected it