|
This thread is locked; no one can reply to it. |
1
2
|
Do I really have to learn Java? |
Mark Oates
Member #1,146
March 2001
|
Some software package asks that its plugins be written in Java. And, as far as I am aware it's the most common language, though I've never had to use it apart from the Comp Sci 101 class I took in college. As a computer programmer, is it weird if you don't know Java? Is it worth it? Is knowing Java going to level up my haxor-ninja insight in any way or is it just ++ for knowing another common language? -- |
CursedTyrant
Member #7,080
April 2006
|
Eh, depends on what you want to do, really. I'd say it's weird, if only because it's so popular and has been around since forever, but not everyone does, or has to, know it. It has its uses, but I believe it's mostly web apps these days, or at least that's all I ever do at work. I'd say it's good to know Java, but it won't be a life-changing experience for you. If you're not aiming to learn any frameworks (e.g. Spring), the syntax is very similar to C#. --------- |
l j
Member #10,584
January 2009
|
Java isn't too hard to learn if you know C++ or other more modern languages like C#. It probably won't level up your haxor-ninja insight. There are lots and lots of frameworks out there. Also you might want to take a look at reflection, it's a powerful language feature, but complete overkill for most tasks.
|
torhu
Member #2,727
September 2002
|
I learned Java a few months ago, and the main thing that stood out was how simple it was. But it's also inflexible and has a handicapped implementation of generics. As a tool for getting things done, it's probably often better than C++ because of how simple it is, and how good the library support is. But you get what you pay for. I suppose it's mainly for server software or apps that have no competition, like apps that are for in-house use. Cause it's slow and uses a lot of memory. If you want to know a wide variety of programming languages, a good base would probably be C++/assembly/Python/Scheme. But if you're interested in programming languages, you're going to learn more than that anyway. If you're talking about what to put on your resume, that's just too boring to talk about here |
bamccaig
Member #7,536
July 2006
|
There's a big difference between knowing Java and knowing Java frameworks enough to be useful in Java. The language is very easy to learn. The frameworks require a bigger time investment; for the most part, the best way to learn these is probably to actually get employed by a company that uses them and learn by example. Joining an open source project that uses them would be another option, but those are probably not too plentiful, and I would guess harder to get involved with because nobody is paying you to be useful so they don't really care if you ever get past cloning the repository. Is it useful to know? Yes. Is it necessary? Probably not. Do I know it? The language mostly, the frameworks not at all. The language is quite similar to C#, and C# is probably the better of the languages. Of course, Microsoft is in control of that so I consider Java the better investment (Oracle is certainly no better, but at least Java is properly open source). Obviously if you plan to write a plugin for a software package that needs to be in Java then you have your own motivation to learn it already. Let's just hope that's enough (again, the language is easy, but the framework(s) will probably take some time). -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Steve Terry
Member #1,989
March 2002
|
just implement a big giant JNI in C/C++ to interface to a simple Java API call ___________________________________ |
MiquelFire
Member #3,110
January 2003
|
Steve Terry said: just implement a big giant JNI in C/C++ to interface to a simple Java API call Ain't that basically what Allegro for Android is? --- |
Steve Terry
Member #1,989
March 2002
|
Pretty much so ___________________________________ |
Kris Asick
Member #1,424
July 2001
|
There was a time long ago when using Java for game development was laughable. Nowadays though... more and more people are going Java over other traditional languages like C/C++ that it's making me a bit worried. I don't learn new programming languages very fast and I've been avoiding Java since every time I look at sample code for it, my brain hurts. So long as I can continue to get away with using C++ exclusively, I shall continue to do so. --- Kris Asick (Gemini) |
Edgar Reynaldo
Major Reynaldo
May 2007
|
Java is the main programming language my community college teaches. I plan to get certified in it so I can get a job somewhere, but its not my favorite. It's very similar to C++ in many respects which makes learning it easy for me, but a very important point that bamccaig mentioned is the tremendous amount of learning that it takes to use its frameworks properly. And the number of classes it uses is staggering. It's got some decent string handling built in to the language, but its not perfect. Learn it for kicks or learn it for money otherwise I would say avoid it. My Website! | EAGLE GUI Library Demos | My Deviant Art Gallery | Spiraloid Preview | A4 FontMaker | Skyline! (Missile Defense) Eagle and Allegro 5 binaries | Older Allegro 4 and 5 binaries | Allegro 5 compile guide |
Matthew Leverton
Supreme Loser
January 1999
|
Edgar Reynaldo said: the tremendous amount of learning that it takes to use its frameworks properly. And the number of classes it uses is staggering The truth. |
Marco Radaelli
Member #3,028
December 2002
|
As others said, Java has its fields of application (webapps, most Android, although others languages can be used there aswell).
|
LennyLen
Member #5,313
December 2004
|
CursedTyrant said: and has been around since forever Java hadn't even been released yet when I started taking computer science courses at University.
|
Mark Oates
Member #1,146
March 2001
|
Hey, I didn't know Java was open source. {"name":"607859","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/c\/5c57453a0bd962037cc5b95f5523c774.png","w":243,"h":160,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/c\/5c57453a0bd962037cc5b95f5523c774"} -- |
MiquelFire
Member #3,110
January 2003
|
Yet, even though it is open source, Oracle still sued Google over using Java in Android... --- |
Arthur Kalliokoski
Second in Command
February 2005
|
Isn't part of the reason MS came out with C# because Oracle got so upset about the differences of J++? They all watch too much MSNBC... they get ideas. |
MiquelFire
Member #3,110
January 2003
|
Dunno. Never paid attention to that. Arthur Kalliokoski said: Isn't part of the reason MS came out with C# because Sun got so upset about the differences of J++? FTFY --- |
larienna
Member #3,185
January 2003
|
I read a book about java lately and it's not so hard to learn. Like mentionned by another user, it's more learning the framework you are going to use that takes time, but that depends on what you want to programm. I intend to use LibGDX to make video games in java, so in my case, I don't need to learn other frameworks like Java Swing for example. It also made me realised that my code was not 100% C++. In java, everything MUST be in a class, so you cannot have simple loose procedures. So it forces you to think out of the box. I think the global aproach was to make things simplier and less annoying to manage. For example, no need to have each class in 2 separate .h and .cpp file. It's now all in 1 file. The biggest drawback is the garbage collector, which is a plague for video game development. LibGDX seems to have controlled this and it is supplying it's own template classes, to manage vectors for example, that minimise the use of the garbage collector. One of the key is to make for example temporary objects actually static objects of a class instead. This make sure the object does not get instanciated and destroyed all the time. Enjoy! and have fun |
MiquelFire
Member #3,110
January 2003
|
I forgot the exact name (it was an article for Javascript, which has the same issue with garbage collection), but using memory pools would be ideal in Java (and other garbage collection languages actually). Basically, if each object takes the same amount of memory, you request memory from the pool, and when you're done, you tell the pool to "release" it, but it keeps it around until it's needed, so to Java, you haven't released it, and it's still in use. --- |
l j
Member #10,584
January 2009
|
In C++ memory pools are also useful, to minimize dynamic memory allocation and to keep memory closer together.
|
larienna
Member #3,185
January 2003
|
So memory pool is actually a chunk of memory managed yourself? Enjoy! and have fun |
pkrcel
Member #14,001
February 2012
|
A memory pool is some ancient concept, useful in C C++ Java and I guess a LOT other amenities It is unlikely that Google shares your distaste for capitalism. - Derezo |
Steve++
Member #1,816
January 2002
|
Unless you are being forced to use it for work or whatever, I wouldn't bother. Java was nice in its day, but those days are long gone. I still use it for some non-work stuff simply because I know how to use it enough to get stuff done, but I certainly wouldn't be inclined to learn it now if I didn't know it. Mark Oates said: Some software package asks that its plugins be written in Java. Unless they require you to provide the source (unlikely), you can use alternative JVM languages such as Jython and JRuby. In terms of bang for your learning buck, you might be interested in C#. Thanks to Mono, you can pretty much use it everywhere, including Windows, Linux, Mac, iOS and Android. C# is Java done right. Very right. |
james_lohr
Member #1,947
February 2002
|
If you don't know Java or C#, then you should definitely learn one of them. Ideally Java first, as it is essentially a feature subset of C#. Other than that, pretty much everything bamccaig said was accurate. They are both nice languages to learn. They have a relatively small number of key words, and you don't need to touch a framework, unless the goal is to be employable.
|
LennyLen
Member #5,313
December 2004
|
james_lohr said: and you don't need to touch a framework, unless the goal is to be employable. I've used C# for a few projects, but they were all C# with .net. How viable is learning C# without .net?
|
|
1
2
|