Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Software is software. The paradigms are the same. The languages have the same roots. What is culture for a programming language anyways? Sure, the tools and frameworks are different, and every language has it's own quirks and uniqueness but they're not as different as you make it sound. If a developer is skilled, these are small differences.


I think that the differences are bigger for inexperienced developers (and experienced ones who don't try to understand the theory underlying their work).

A novice PHP developer will (or at least would have 5 years ago) create a messy script with interspersed HTML and PHP, a SQL injection vulnerability or two, and little code organization.

A novice Java developer will implement a bunch of patterns they don't understand (probably misusing them), and write a mess of code with too many side-effects.

An experienced developer can write good code in either language, and many of the patterns will end up looking similar.


But wait, the implication here is that "the theory underlying their work" is similar for most languages?

Don't Haskell and Java differ significantly wrt Type systems? And the rigid class structures of Java might cause one to build very different programs that you might in a more dynamic language?


This is what I meant in my last sentence, thank you for clarifying.


I can switch between languages. But i learned to write code in PHP, Java, C++ and other languaes. There is no necessarity for someone, who is a PHP or Java Developer to switch easily to another language.

It takes a few weeks, month and perhaps 1-2 years for someone and i think it is fair enough to decide to hire an java guy for a java position over an php developer and to ask this in a job interview. It might be also okay to hire some php developer (or vice versa) but dismissing it, that there is a difference, is wrong.


I don't think you need to dismiss it as a factor. I think there are quite a lot of people who can get into a new language in a matter of weeks. That's really not the issue, you just have to find out if he's motivated to get into it. Because motivation is key. If your PHP developer is excited about becoming a Java developer he'll do fine. If he wants to stay in his comfort zone it's not.


> The paradigms are the same

So Clojure, Java, Javascript, Haskell and Ruby are all basically the same?

I think damage can be done hammering different languages into the same methodologies..

> If a developer is skilled

You suggest skill is generic. If a programmer is smart they can learn new paradigms. Projecting the paradigms they are used to onto new domains can produce problems, least of all the standardisation.


> So Clojure, Java, Javascript, Haskell and Ruby are all basically the same?

Nice try, but we were talking about PHP and Java. Also, for instance, functional paradigm is the same for all functional languages, which is what I meant in the first place.

> You suggest skill is generic.

I'm suggesting the developer understands the OOP paradigm, knows about design patterns and isn't confused by the small differences in syntax or how much a language borrows from each paradigm. Two languages using the same paradigm are closer to each other, regardless of how different their syntaxes may be.

> Projecting the paradigms they are used to onto new domains can produce problems

That's completely true, but I'm not going to write generic comments that cover every case. I'm replying to someone comparing PHP to Java. It's my understanding the PHP is mostly OOP.


> Nice try, but we were talking about PHP and Java

You started by saying "Software is software", you didn't mean this to imply all languages are similar?

> functional paradigm is the same for all functional languages

So Haskell and Clojure are similar?

> understands the OOP paradigm, knows about design patterns

Design patterns differ between languages. And OOP principles too. I don't want to see ConfigurationBuilderFactory classes in my Python code.

> I'm not going to write generic comments that cover every case

You only claimed "Two languages using the same paradigm are closer to each other" - but this seems tautologically true, depending on how you define "paradigm". Many OO languages differ in ways significant to the Java way of OOP.


> So Haskell and Clojure are similar?

Yes.

> Design patterns differ between languages. And OOP principles too

Not that much compared to paradigms. They're closer to coding styles. Once you understand what encapsulation is and how python lacks visibility modifiers, it's only a matter of using a coding style to compensate.

> "Two languages using the same paradigm are closer to each other" - but this seems tautologically true

Taken out of context, sure, but you excluded the second part. That's why I think Haskell and Closure are similar.


Eh, we picked up a developer with no experience but Erlang, and he's productive in Python and Go only a few months later. Peer coding and good code reviews (and a good attitude) do wonders.


What's "productive"? He's producing Pythonic Python? He can read other peoples code?

If so, sounds like he's smart enough to pick it up.


>I think damage can be done hammering different languages into the same methodologies..

Using the incorrect nail for the job can lead to disaster or complications down the road. Think of using a nail that will rust over time being used on an exterior deck. Or a nail that is too long or thick for the pieces of lumber it is supposed to be securely (potentially splitting the boards).


> So Clojure, Java, Javascript, Haskell and Ruby are all basically the same?

Basically, yes. You learn to think how, the rest is implementation. Don't get me wrong, it's not an immediate switch, it takes learning and time, but deep inside, the are the same indeed.


No, they are not the same, because they lead you (some more, some less) to different thinking when solving problems. Clojure and java don't have much in common, I think differently when I solve problems in Clojure vs Java. Haskell is also a very different beast. I see languages as frameworks for thinking and developers should embrace that and not fight it. Sure you can code in OO style using Clojure, but language was not designed for that.


Of course Java and Javascript are the same, they've got the same name.

It's just like grapes and grapefruit. Completely indistinguishable from one another.


A nail is a nail is a nail! You can use any nail for any application!


I've been told I can write FORTRAN in any language.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: