Hi guys, i want to learn an oriented-object language and i don't know which i must choose : Java or C# ?
I know some basics rules about programming, i have made many cli-programs in C and some for my calculator in Ti-Basic.
I think with Java i can, at long term, develop on Android systems and i think it's the future platform of programming but...
With C# and .NET maybe i can make native software for Windows and Windows Phone, and the future marketplace on Windows can be good. But maybe the Windows/Xbox family is on decline and near to the end ?
So i don't know which choose, if you can give me some advices, it will be great. Thank you.
PS : Sorry for my bad english language. I hope you will understand what i want to say.
i want to learn an oriented-object language
Smalltalk, Self, Io, Eiffel, Common Lisp+CLOS. Pick your poison.
Name:
Anonymous2012-08-10 7:29
>>2
no, seriously, dude, i need a language which can made REAL applications, not something for ultimate science, outdated from 70's or things like that...
Why not both? There's nothing inherently novel in any of them relative to each other and by learning either one, you should be able to learn the other in no time. Do you see yourself programming winforms? Then go C#. Do you see yourself fucking around with Android and maybe server-side web apps? Then go Java.
>>9
I disagree. I do think it's overused pretty massively - most applications don't make good use of it and can be written purely in a functional/imperative language. But for certain things, it is a useful paradigm to have. It effectively simulates multiple computers interacting with one another!
Name:
Anonymous2012-08-10 19:04
Also, OP, if you learn Java, get ready for everyone to hate you, and rightly so. Good god, what a terrible fucking language.
>>10 It effectively simulates multiple computers interacting with one another!
No, it doesn't.
Name:
Anonymous2012-08-10 19:25
C# and Java are pretty much interchangeable, C# has some nicer newer features but you probably won't use them yet. It is also much easier to make graphical menus and such, though it suffers from lack of portability in comparison to Java, just learn both if you are restricted to those two.
It effectively simulates multiple computers interacting with one another! ONE THOUSAND TIMES WHAT THE FLYING FUCK
Name:
Anonymous2012-08-10 21:17
>>14 >>12
Think about it - different objects running functions and passing data between one another autonomously?
Name:
Anonymous2012-08-10 23:18
>>10 It effectively simulates multiple computers interacting with one another!
That's Simula/Smalltalk OO, where "objects" were coroutines/processes/actors. Today this would be called event-driven or actor programming. C++ OO is C structs and function pointers with some syntactic sugar to pass a pointer as the first argument. The whole concept of parallelism is gone. The memory protection and garbage collection are gone. I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. - Alan Kay
* adding 'throws' to a method in Java requires snowballing changes to all methods that make use of that method, which requires changes to those methods, etc...
*****Also, remember that C# is -not- a windows-only language. Using mono you can write C# code on linux or mac.
Name:
Anonymous2012-08-11 16:59
>>18
But Mono doesn't support all of .NET and is much slower.
Name:
Anonymous2012-08-11 17:15
>FEATURES COMMON LISP HAS THAT C# AND JAVA DO NOT
A good macro system
Symbol type
Multimethods
Optional dynamic typing
A REPL
Conditions and restarts
Not forced OOP
Name:
Anonymous2012-08-11 17:18
>>19
using mono.simd, it's not uncommon to get performance an order of magnitude better than .net
I'll give you that under certain conditions, .net is faster than mono on windows though.