New to Programming

NathanE said:
That article about Java in schools is just rubbish. The guy clearly has his own agenda and probably isn't quite living in the real world when it comes to development. Shock horror: C/++ is old and is avoided whenever possible these days. Java/.NET offer real productivity and code maintainability advantages. Code performance, with the exception of a few markets, is rarely a concern these days also.

No offense but Joel Spolsky knows more about computer science than you :o
 
http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

Just read this and while amusing it defiantly rings true. Java/C# force you into a style of thinking that everything is a noun and do not give you the flexibility other languages provide. We write java/C# code because it is (reasonably) productive (I don't disagree with that) and because for our employees rapid development is most important. Ruby/Python would be just as productive really and are better languages, both of which I would recommend over java/C# for a beginner.

You can't say that Joel does not live in the real work of software development.. he's CEO of a software development company.

I'm currently trying to learn scheme - has really no industry presence, but not everything has to. Its not all about business, this is for fun.
 
Last edited:
Una said:
http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

Just read this and while amusing it defiantly rings true. Java/C# force you into a style of thinking that everything is a noun and do not give you the flexibility other languages provide. We write java/C# code because it is (reasonably) productive (I don't disagree with that) and because for our employees rapid development is most important. Ruby/Python would be just as productive really and are better languages, both of which I would recommend over java/C# for a beginner.
I read that last night, and I think either he or Java (never used it myself) has missed the point. Using proper OOP techniques, the problems he mentioned shouldn't even occur. If you're using objects/static classes for the sole purpose of doing something, then you haven't grasped OOP properly.

Anyway, it isn't such a big problem in C#, due to its support for first-class functions.
 
Last edited:
Inquisitor said:
I read that last night, and I think either he or Java (never used it myself) has missed the point. Using proper OOP techniques, the problems he mentioned shouldn't even occur. If you're using objects/static classes for the sole purpose of doing something, then you haven't grasped OOP properly.

Anyway, it isn't such a big problem in C#, due to its support for first-class functions.

The problem is java forces OO on you in places where it does not make sense. The whole java OO model is flawed (because it is not real OO).

Here is a comparison between smalltalk (proper OO) and java.

1. So both have first order construct as a class. So because each are object orientated - they both inherit from an object class. (True).

2. Its possible to inherit from any object within this rooted tree.
- This is where java fails, and its fails because of design.

Java and C# v1 expect you to wrap everything in a big fat "Runner"/functor object.
C# 2 is better in this sense because it supports blocks/closures.

Like I say the main problem for me mainly stems in the lack of flexibility with java and the way it forces you to wrap everything up in classes. Higher order programming is good when it works, but not the way java does it.

Arguing about languages is totally pointless really since everyone has different opinions on what makes a good language :p
 
Last edited:
Back
Top Bottom