|
Shinku ABOOKEN posted:Point is: Learn Java even if you are 100% sure you won't write a single byte in it. Wow, gross. Think I'm just going to go ahead and stick with my strategy of avoiding it. Learn Scala, not Java. (or both)
|
# ? Oct 1, 2013 22:34 |
|
|
# ? Jun 6, 2024 05:42 |
|
scala is great if you've grown too accustomed to modern niceties like working compilers, or if you feel like spicing up your identifiers with fun unicode to amuse and confound your coworkers.
|
# ? Oct 1, 2013 22:36 |
|
return0 posted:Vanilla java is a joke these days man, surely nobody is making new java software outside of phone apps and maintenance. Tons of places are still using Java for new projects because of momentum, you just aren't going to hear about it on HN. If you want to clasify that as maintenance then go ahead, but don't delude yourself into think it's an obsolete language.
|
# ? Oct 1, 2013 22:40 |
|
Tons of places are using Java for new projects because there is still not a language/platform that does what Java does. See also C++.
|
# ? Oct 1, 2013 22:42 |
|
Yeah it's less that I have something against Java as a career choice and more that programming with other languages tends to be more fun (at least to me)
|
# ? Oct 1, 2013 22:45 |
|
"If we argue about this for just a few pages more, we're bound to find out what the one true programming language is!" there is no one true programming language Just use the right tool for the right job and remember that that tool is never PHP and you're all set.
|
# ? Oct 1, 2013 23:12 |
|
NtotheTC posted:Just use the right tool for the right job and remember that that tool is never PHP and you're all set. My "day job" is working on a gigantic PHP project
|
# ? Oct 1, 2013 23:16 |
|
Shinku ABOOKEN posted:Just in case you don't know, that example was a joke. Java has top-notch build and test tools, and the greater Java ecosystem has a lot of interesting stuff going on.
|
# ? Oct 2, 2013 00:09 |
|
libcxx posted:I can't stand all this autogenerated boilerplate! *writes a literal novel in cucumber* And it always seems that someone doesn't really get it. Given I have started the process When I call the method foo() with the argument bar Then the result should be foobar
|
# ? Oct 2, 2013 01:08 |
|
baquerd posted:And it always seems that someone doesn't really get it. Sadly, your result was actually a segmentation fault
|
# ? Oct 2, 2013 02:05 |
|
"What is a conditional loop?" - the guy in charge of my Intro to Bioinformatics with Python class.
|
# ? Oct 2, 2013 03:12 |
|
baquerd posted:And it always seems that someone doesn't really get it. I'd be so sad if I ever saw that.
|
# ? Oct 2, 2013 03:28 |
|
baquerd posted:And it always seems that someone doesn't really get it. Implemented, of course, as Ruby code:
|
# ? Oct 2, 2013 03:29 |
|
Re: the Javachat; I know C++, C#, Python, Javascript, Lua, and PHP (used in roughly that order, and I've been programming for about ~6 years now). Someone recently told me to give up all of them and use Java because "That's the only way you're gonna get a job don't delude yourself, learn some database skills and Java"
|
# ? Oct 2, 2013 05:54 |
|
a lovely poster posted:Wow, gross. Think I'm just going to go ahead and stick with my strategy of avoiding it. Learn Java because it's insanely common and because a basic working knowledge of the language is very easy to acquire. That said, basic Scala is also pretty easy to pick up. People like to talk about how horrifying the type system can make stuff but that's not something you have to worry about too much until you decide to start writing libraries in it.
|
# ? Oct 2, 2013 06:04 |
|
The Insect Court posted:Learn Java because it's insanely common and because a basic working knowledge of the language is very easy to acquire. Sounds like a reason to learn PHP
|
# ? Oct 2, 2013 06:08 |
|
a lovely poster posted:Sounds like a reason to learn PHP I mean, you probably should know a bit of PHP. You shouldn't put it on your resume or apply to a job which requests it, sure. But when someone is like "Hey can you make a map showing all the places our product is active", I'd rather spend 30 minutes in PHP than an hour or two in some better language. Which I guess is less applicable if you have a job with well-defined responsibilities, but not everyone does.
|
# ? Oct 2, 2013 06:42 |
|
I guess I just don't see where Java would ever come into play in a discussion like that. What's the "this is really quick and easy to do in Java whereas other languages would take a lot longer" project? I'm primarily a python/php/c# guy and through all the jobs I've had, I've never seen a programmer whip out Java to do something interesting and quick. This may be just because I'm outside of the Java ecosystem though. Sure, it's a great way to find a job. But for me personally and many other programmers, learning Java is neither desirable nor necessary.
|
# ? Oct 2, 2013 06:52 |
|
I thought the point you were making was much more on the PHP sucks side. I'm a huge Java guy, but I do agree with you; if you aren't primarily working with Java, there's no real reason you need to know it.
|
# ? Oct 2, 2013 07:03 |
|
a lovely poster posted:What's the "this is really quick and easy to do in Java whereas other languages would take a lot longer" project? I'm primarily a python/php/c# guy and through all the jobs I've had, I've never seen a programmer whip out Java to do something interesting and quick. This may be just because I'm outside of the Java ecosystem though. --- I think that Java is good to learn and get good at, because it's "the strongly typed language/VM which has its poo poo together" more so than its alternatives, i.e. C# and the .NET family, Go (which is strong but still maturing), C++, and so on. Even if the language and VM themselves are flawed, there's a lot of good engineering that's gone into the tools, libraries, and platforms that "better" languages would do well to learn from. In comparison: Python's dependency management is a joke unless you use virtualenv, and deployment is a little bit of a pain. I can see someone who learns the tools well getting to a similar point I got with Java, though. PHP has composer and now phar - PHP has spent the last 13 years adopting Javaisms in companies' efforts to mature it to enterprise levels, because of its vast success on the perceived low end of the programming spectrum. C# is Microsoft's take on a strongly typed language with a powerful runtime, and possibly the best alternative to Java on a language level, but the ecosystem just isn't as wide and constantly active and growing as Java's.
|
# ? Oct 2, 2013 07:22 |
|
a lovely poster posted:I guess I just don't see where Java would ever come into play in a discussion like that. What's the "this is really quick and easy to do in Java whereas other languages would take a lot longer" project? I'm primarily a python/php/c# guy and through all the jobs I've had, I've never seen a programmer whip out Java to do something interesting and quick. This may be just because I'm outside of the Java ecosystem though. Anyhow I really like dependency management with Maven (when it works) as integrated with IDEs. You could be like, hey I want a search engine, or a PDF generator, or whatever publicly available library, push a couple of buttons, and it gets downloaded and used in your project as a dependency and/or included in the final artifact. You needn't even store the libraries in your version control, all you say is "this needs XYZ library version 1.23" and XYZ version 1.23 gets downloaded and used in your project.
|
# ? Oct 2, 2013 07:42 |
|
Pollyanna posted:"What is a conditional loop?" - the guy in charge of my Intro to Bioinformatics with Python class. I didn't know what a "conditional loop" was until just now when I read your post and looked it up. I mean, I knew what a loop was and what a conditional was, but had never heard the phrase "conditional loop" before. Turns out it more or less means the same thing as "loop".
|
# ? Oct 2, 2013 09:46 |
|
Hammerite posted:I didn't know what a "conditional loop" was until just now when I read your post and looked it up. I mean, I knew what a loop was and what a conditional was, but had never heard the phrase "conditional loop" before. Turns out it more or less means the same thing as "loop". Agreed, call a spade a spade.
|
# ? Oct 2, 2013 09:51 |
|
Java can be good, but for whatever reason a greater percentage of the good software than I see is written in Python and C++, whereas when I see a Java app it tends to suck. Java is easy enough for a novice to use, but it's not as easy and intuitive as Python, so you end up with a bunch of coding abominations written by "Java programmers" who just wanted to make Minecraft mods or whatever. The same novice in a Python environment would be able to get by and probably produce something that's pretty good with minimal effort because there's almost no learning curve by comparison. The same novice in a C++ environment will probably just give up before releasing anything.
|
# ? Oct 2, 2013 09:51 |
|
QuarkJets posted:Java can be good, but for whatever reason a greater percentage of the good software than I see is written in Python and C++, whereas when I see a Java app it tends to suck. Java is easy enough for a novice to use, but it's not as easy and intuitive as Python, so you end up with a bunch of coding abominations written by "Java programmers" who just wanted to make Minecraft mods or whatever. The same novice in a Python environment would be able to get by and probably produce something that's pretty good with minimal effort because there's almost no learning curve by comparison. The same novice in a C++ environment will probably just give up before releasing anything. I don't think its effective to gauge the quality of a language on the results of projects by bad coders. It affects the ecosystem sure, which can make it an overall worse tool if it becomes a problem, but bad projects would probably have sucked no matter which language got to them first. Wouldn't it make sense to evaluate a language based on it's best examples? Then you can genuinely see where the limitations of the language are becoming a liability, and where the strengths are being used to best effect.
|
# ? Oct 2, 2013 10:16 |
|
As a C# programmer who is learning Java for Android development, I am curious. What are Java's strengths?
|
# ? Oct 2, 2013 11:01 |
|
Java's got a very mature ecosystem surrounding it. There are Java libraries for drat near everything and the standard library is quite featureful (some would say bloated). It basically defines what "enterprise" coding looks like, for good or for ill, which is to say it tends to encourage verbosity and is probably overkill for very small-scale projects. There are open-source and commercial tools for Java development that surpass most other languages in their sophistication; the most widely-used open-source IDE was originally developed for (and still best supports) Java development. JVM bytecode can be run virtually anywhere unaltered, and there are many other stable languages that target the JVM (and call Java libraries) if you don't like Java proper. The language itself is basically a subset of C#. (Or, since Java is older, say that C# is a superset Java.) If your background is in C# then you might find Java a bit stifling and awkward but you won't have to learn any new tricks.
|
# ? Oct 2, 2013 11:11 |
|
QuarkJets posted:Java can be good, but for whatever reason a greater percentage of the good software than I see is written in Python and C++, whereas when I see a Java app it tends to suck. Java is easy enough for a novice to use, but it's not as easy and intuitive as Python, so you end up with a bunch of coding abominations written by "Java programmers" who just wanted to make Minecraft mods or whatever. The same novice in a Python environment would be able to get by and probably produce something that's pretty good with minimal effort because there's almost no learning curve by comparison. The same novice in a C++ environment will probably just give up before releasing anything. That's because most of the programs written in Java live places that you'll never see. Java is EXTREMELY common in the enterprise world, where the emphasis is less on client apps and more on back end services. You're right that it's easier to create a small prototype or client in Python, but no one has seriously used Java as a client language in years. One exception though is Android; there's a massive number of Java client applications in the world thanks to Android.
|
# ? Oct 2, 2013 12:54 |
|
Legacy unit tests, the best unit tests.code:
Mr. Crow fucked around with this message at 15:49 on Oct 2, 2013 |
# ? Oct 2, 2013 15:46 |
|
Amarkov posted:I mean, you probably should know a bit of PHP. You shouldn't put it on your resume or apply to a job which requests it, sure. But when someone is like "Hey can you make a map showing all the places our product is active", I'd rather spend 30 minutes in PHP than an hour or two in some better language. Except then that map winds up growing and growing because of scope creep and now it takes you twice as long to add each new feature because you wrote it in PHP.
|
# ? Oct 2, 2013 16:07 |
|
yaoi prophet posted:Except then that map winds up growing and growing because of scope creep and now it takes you twice as long to add each new feature because you wrote it in PHP. A few months ago I had to develop a web app that routes submission forms to various emails depending on what the user's request is. I was specifically told to write it quick and dirty because the configuration was never going to change. It changes, on average, about three times a week.
|
# ? Oct 2, 2013 16:18 |
|
Hammerite posted:I didn't know what a "conditional loop" was until just now when I read your post and looked it up. I mean, I knew what a loop was and what a conditional was, but had never heard the phrase "conditional loop" before. Turns out it more or less means the same thing as "loop". Good point. I wish programming terms were more standardized. Also, if I suddenly need to know a programming language to do a little work on a project, I can just loving pick it the syntax and idiosyncrasies on the fly. No freakouts over "MUST HAVE ALL LANGUAGES ARHRHRHRHRHR" needed.
|
# ? Oct 2, 2013 17:10 |
|
Pollyanna posted:Good point. I wish programming terms were more standardized. Programming is a relatively new field and you're going to run into plenty of people who know way more than you do but might not know the correct jargon or have the traditional education. Be careful about coming off as a dick when it's a semantic issue.
|
# ? Oct 2, 2013 17:46 |
|
Holy hell I hate Microsoft. We just switched one of our client's ASP.NET MVC websites to run on a new server. Everything went pretty smoothly, until we started getting e-mails this morning about users not being able to log in on IE 10. We didn't change any code and we copied the configuration settings from the old server, so things shouldn't have changed. After spinning for a few minutes trying to figure out why only IE 10 was affected, I went a Googling. As it turns out, IIS 7 and below consider IE 10 to be a cookieless browser. Microsoft's own web hosting software is incorrectly classifying Microsoft's own browser. So our application would send Set-Cookie headers, IE 10 would send them back on each request, but IIS would completely ignore them - thus rendering IE 10 users unable to log in.
|
# ? Oct 2, 2013 18:04 |
|
Pollyanna posted:Good point. I wish programming terms were more standardized. Not all languages are just learning 'syntax and idiosyncrasies'. Maybe going from Java to C# is relatively easy, but going from C++ to Haskell is going to be absolutely killer.
|
# ? Oct 2, 2013 18:06 |
|
yaoi prophet posted:Not all languages are just learning 'syntax and idiosyncrasies'. Maybe going from Java to C# is relatively easy, but going from C++ to Haskell is going to be absolutely killer.
|
# ? Oct 2, 2013 18:18 |
|
Uziel posted:Yeah, my 5 year plan or whatever is to have at least passing familiarity in one language per type of :imperative, functional, memory management, garbage collected, static, dynamic. What about class-based/prototypal OO?
|
# ? Oct 2, 2013 18:27 |
|
I've been a C# developer for most of my career. I thoroughly understand the roots of C# in Java and what aspects they inherited from it, expanded upon, and improved. I agree that the Java ecosystem is very expansive and dynamic, and is generally a more mature environment than .NET. And yet I *cannot* read Java code. My eyes just glide right off the screen and my brain shuts down. It's literally the most boring thing in the world. As a C# dev I'm no stranger to boilerplate, verbose names, and layers upon layers of interfaces for IoC and the like. But my brain just refuses to commit whenever I have to read Java code. I can read C# just fine. Dr Monkeysee fucked around with this message at 18:31 on Oct 2, 2013 |
# ? Oct 2, 2013 18:29 |
|
I have very few complaints about C# as an ecosystem. Some of the really old stuff isn't implemented with generics, which would make it work a lot better. That's pretty much it.
|
# ? Oct 2, 2013 19:23 |
|
|
# ? Jun 6, 2024 05:42 |
|
Volmarias posted:You're right that it's easier to create a small prototype or client in Python, but no one has seriously used Java as a client language in years. It can have some genuine advantages in that space, when you don't have any control over the target environment. For example, deploying a JAR is trivial compared to C++ (compile a different version for every user platform? no thanks) or Python (it's much more likely that a random computer will have a JVM than a Python interpreter). I can literally email a single file to a new user and be confident that they can just double-click on it and the application will appear on their screen. I don't know of any other technology that offers that. Basically, if you still need to write desktop software at all, Java isn't actually a terrible choice for that.
|
# ? Oct 2, 2013 19:33 |