4 ms·
Regarding date and time stuff, everyone appears to use Joda-Time: http://www.joda.org/joda-time/ http://www.joda.org/joda-time/ If you want inconsistent, .Net
by d0 13y ago
Regarding date and time stuff, everyone appears to use Joda-Time: http://www.joda.org/joda-time/ http://www.joda.org/joda-time/
If you want inconsistent, .Net framework's collections and HTTP stuff was the worst for years. They added to the former and wrapped the latter but you still fall over crimes. Java collections and Servlet API are pretty good really in comparison.
It's not terrible really. Anything on that scale is inconsistent: python, ruby, .Net, C++.
The hard bit is learning where stuff is hidden. I'm currently doing that with Objective-C.
- bane 13y ago> Anything on that scale is inconsistent: python, ruby, .Net, C++. Well, I wonder if this is necessarily inevitable. The Oxford English Dictionary is probably as large and complex as any of the above, but is remarkably consistent in style and tone. I'm a firm believer that good design extends to code (and coders are sadly not very good designers in general).
- d0 13y agoAgreed. It definitely shouldn't be inevitable. I left Go off that list precisely for that reason.
- michaelt 13y agoThe difference between a dictionary and a standard library is you can change entries in a new dictionary as much as you like and no-one will complain that their book no longer compiles :) It would be nice if a programming language came along that designed all features right from the start, so no features ever needed to be deprecated or redesigned. Unfortunately I have yet to find a language that is all things to all people, even after several versions; designing a language perfectly from scratch might not even be possible.
- bane 13y agoYeah I agree. But perhaps a tick-tock version release schedule could work well for this. Odd number versions fix bugs, and even ones introduce new things, deprecate old things, fix bad syntax etc. I know it's sort of being tried with Python right now, but it's sort of this monumental this or that (with that not being clearly better) that doesn't seem to be working. The way the Perl community is back porting perl 6 bits into 5 does. Keeping the even releases well scoped would ease the pain of transitioning. Maybe ensure some guaranteed level of support for 12-24 months a la Ubuntu and we might have a good model for language development.
- michaelt 13y agoWell, deprecating the language every 12 months would sure be good for developers on support contracts. If we could make it so most new software needs you to have the latest version of the language/vm/runtime, and our software needs an older version with deprecated features, customers would have to keep paying for upgrades whether we were adding new features or not. For the end users, people who don't get paid to do maintenance etc it might not be so good.
- bane 13y agoThere's not really any reason why software couldn't still be maintained/written in an older version of the language, and have older VM/runtimes sitting around to deal with that. It's not like I can run Java 7 code on a Java 6 VM. Hell, isn't that de rigueur anyways these days? We're already dealing with this problem, except the language itself is getting worse.
- michaelt 13y agoJava is actually very good at backwards compatibility - sometimes IMHO going annoyingly far, like type erasure on collections. Java 6 bytecode will run on the Java 7 JVM, and Java 6 source will compile with the Java 7 JDK, modulo one or two incompatibilities [1]. Oracle 'highly recommend' you uninstall old versions [2]. On the other hand, when I install the Google App Engine Python SDK on Ubuntu it causes my hex editor to stop working. And I use some Ruby software where getting it working meant a nasty fight with xcode and rvm, which left me fearful that if I ever upgrade, reinstall or switch computers I'll never get it working again :) admittedly my knowledge of ruby is pretty weak. [1] http://www.oracle.com/technetwork/java/javase/compatibility-417013.html#incompatibilities http://www.oracle.com/technetwork/java/javase/compatibility-... [2] http://www.java.com/en/download/faq/remove_olderversions.xml http://www.java.com/en/download/faq/remove_olderversions.xml
- _ZeD_ 13y agoSo, are you using python3?