All other languages are either not compiled languages with static typechecking or have too few eligible users. C# would also be an option if it wasn't Windows-only.
People who've only had experience with Java and Cocktothorpe should not feel qualified to make any pronouncements on the merits and demerits of static versus dynamic typing.
The only realistic languages for web development are Python and Ruby.
>>3
Scala is easy enough to learn if you have experience in Java. Also you can use all your Java codebase in Scala projects.
Haskell is MUCH harder (so hard that i quit when trying to learn it, by lack of real motivation i guess, or maybe was all that time working on Burger King)
>>5 Having a program fail at runtime because of something a compiled language would have caught is not acceptable for anything.
This is what Java users really believe.
Static typing confuses syntax and semantics.
What's the point of being forced to implement java.lang.Comparator and write a compareTo method just so I can if that method can return any int, even if it violates reflexivity, anti-symmetry, or transitivity? What ``safety'' is actually gained?
Fucking nothing. All that you've gained is verbosity and unnecessary hassle. And a lack of flexibility that required the additional creation of java.util.Comparator.
The fact that nearly every ``statically'' typed language feels the need to poorly reinvent dynamic typing through ``generics'' shows what a sham it really is.
Name:
Anonymous2012-04-27 19:29
>>14
Don't care about Java. It doesn't represent the end-all be-all of static typing. Weak typing is better than dynamic typing, but only because dynamic typing is the absolute worst system to ever be invented.
>>17 if that method can return any int, even if it violates reflexivity, anti-symmetry, or transitivity
All data ultimately resolves to a number. That is the nature of information. What ``safety'' is actually gained?
You will have to go out of your way to do work with data that have been defined as different data types as the compiler would normally warn the user about it. All that you've gained is verbosity and unnecessary hassle.
You should design what data you'll use during the system design phase. Writing code should be the easiest part of software development The fact that nearly every ``statically'' typed language feels the need to poorly reinvent dynamic typing through ``generics'' shows what a sham it really is.
Is there anything wrong with making a tool more flexible and more safe at the same time?
compiled Don't confuse ``compiled'' with static manifest typing. Java is about as compiled as JavaScript (many interpreters compile scripts into an internal intermediate code before interpreting it). You hardly ever run what the compiler generates. Instead the output is fed to the JIT which takes on the tedious job of turning the horrible JVM byte code into somthing that a register machine understands (JVM bytecode is pretty easy to implement, but is awful as an intermediate language).
All data ultimately resolves to a number. That is the nature of information. Firstly, you missed the point that >>17 was making. What if you don't obey (by mistake) the rules that are only described in the documentation? There's compile time safety for returning different numbers when comparing two objects twice.
Secondly, all data don't ultimately resolve to a number. What you fail to see is that you can find an isomorphism between any data and natural numbers (and it goes both ways: I can represent numbers with my fingers when I count them, but you wouldn't say that my digits are digits).
All data ultimately resolves to a number. That is the nature of information. /prog/'s philosophy of mathematics:
Everything resolves to a register value of today's word size.
>>24 Secondly, all data don't ultimately resolve to a number. What you fail to see is that you can find an isomorphism between any data and natural numbers
Yo'ure a fucking idiot.
Every possible instance of an object must have a unique encoding in binary, so there needs to be a one to one function f: X -> N, where X is the set of all possible instances of the object, and N is the natural numbers. Or you could define it to map to the set of all finite length bit strings.
But I don't hink this has much bearing on dynamic typing versus static typing. Sure everything running on what we use for computers must have some encoding in binary, but that does not have an impact on the objects themselves, aside from how much memory they consume or how much time it might take to process them and the information they contain. It can be useful to be able to prove that you will only be dealing with a certain type of object at a certain point in your program. That might not be enough, but it is a start at least.
Everything resolves to an object.
Its objects all the way down to my anus.
Name:
Anonymous2012-04-29 3:36
you can run c# on mono. also, >>17 is retarded. dynamic typing is a poor way to address the problem of many data structures manipulating data in similar fashions. static typing is about reasoning through your program more than it is about safety.
>>32
Yes, yes, everybody knows that finite bit strings are countable. This is discussed here only because >>21 didn't understand what >>17 said, shown in his reply
if that method can return any int, even if it violates reflexivity, anti-symmetry, or transitivity
All data ultimately resolves to a number. That is the nature of information.
which had nothing to do with what was argued.
Manifest typing makes the job easier for the compiler, since it might be nearly impossible in some cases for it to prove that a function will only ever be called with data that has an inferred structure. Manifest typing is also sometimes useful to limit the generality of a function so that it won't allow inputs that don't make sense.
Name:
Anonymous2012-04-29 13:06
java on .net rails
Name:
Anonymous2012-04-29 13:46
>>37
>Yes, yes, everybody knows that finite bit strings are countable.