Jump to content

Summer Goal: learn a Programming Language ☑ What should I start with ?

whud99
7 hours ago, Nuluvius said:

What's a 'coder-base'?

Well I may not be so well versed in programming, but I can handle english.

First - the definition of a compound adjective: "A compound adjective is a single adjective made up of more than one word (e.g., two-seater aircraft, free-range eggs). The words in a compound adjective are often linked together with a hyphen (or hyphens) to show they are part of the same adjective." The word coder, as I used it here, refers to "a person who designs and writes and tests computer programs. computer programmer, programmer, software engineer." Lastly, the word base is "a group of people regarded as supporting an organization." So the term coder-base most likely means the large part of the group of programmers. This source indicates that the popularity of Java is 24 percent in comparison to other languages, ahead by almost double of the runner-up (that's another compound adjective). And while not a perfect metric, I'll take it. BTW single quotes are used for nested quotes and headlines.

7 hours ago, Nuluvius said:

Are you really sure about that statement?

It's called a joke. You need to be picked up by Java's garbage collector. :P (that's another joke, for the record. (actually the joke marker would be another joke also - so would that xD ))

 

I really didn't mean to spark controversy and I'm sorry if I did. I'll back off now and let the "pro's" handle it. I still personally enjoy Java (and java, for that matter). 

Link to comment
Share on other sites

Link to post
Share on other sites

28 minutes ago, BuntzenB said:

it seems as though it is since Java compiles into bytecode and not machine code and therefore it needs to run in a VM which needs to run in an OS. Is this correct? Sry.

Yes the reason that Java code is extremely portable is that it compiles into a certain Java instruction set (Java assembly/machine code if you will). This instruction set is not specific to the machine it is run or compiled on but universal to Java.

 

The instruction set is actually a stack based one contrary to the register based one of x86. Some people argue that the reason for choosing a stack based instruction set is that the compiled binary is smaller than the register based counter part, this was an advantage when Java was developed and the internet was still young and its transfer rates where very low. It was easier to share Java programs than other counter parts because the binary was smaller.

 

So back to why it's portable, the java byte code is run in the Java Virtual Machine which at run time translates the java instructions to the underlying hardware instruction set. This means that whenever there is a new hardware platform that has a different instruction set the only thing we need to do is to write a new version of the Java VM that will run on that platform. Now every Java program will run on that platform too, without any recompilation or changes required. THIS IS THE POWER OF JAVA. This is also the reason that many in house cooperate applicatinos are written in Java as they don't need to worry about compatibility when moving from platform to platform.

 

In theory you should be able to write a java VM that could run without a OS but I don't think this has been done or if there is a reason to do so.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Hamosch said:

Yes the reason that Java code is extremely portable is that it compiles into a certain Java instruction set (Java assembly/machine code if you will). This instruction set is not specific to the machine it is run or compiled on but universal to Java.

 

The instruction set is actually a stack based one contrary to the register based one of x86. Some people argue that the reason for choosing a stack based instruction set is that the compiled binary is smaller than the register based counter part, this was an advantage when Java was developed and the internet was still young and its transfer rates where very low. It was easier to share Java programs than C code because the binary was smaller.

 

So back to why it's portable, the java byte code is run in the Java Virtual Machine which at run time translates the java instructions to the underlying hardware instruction set. This means that whenever there is a new hardware platform that has a different instruction set the only thing we need to do is to write a new version of the Java VM that will run on that platform. Now every Java program will run on that platform too, without any recompilation or changes required. THIS IS THE POWER OF JAVA. This is also the reason that many in house cooperate applicatinos are written in Java as they don't need to worry about compatibility when moving from platform to platform.

 

In theory you should be able to write a java VM that could run without a OS but I don't think this has been done or if there is a reason to do so.

 

Thanks for the answer - fundamentally I knew about the JVM but not to that detail - so thanks alot. also If I recall there was an attempted JavaOS but it failed...

Also I think the GNU Java compiler can compile to machine code, which in my mind seems to undermine the entire idea of Java....

thanks

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, BuntzenB said:

 

 

Yeah you are probably both correct.... Could have been a little more brutal to be honest - you went fairly soft on me.

I recall someone telling me that java code couldn't be an OS because of the way that memory is handles. After some rudimentary research which I should have done before pontificating - it seems as though it is since Java compiles into bytecode and not machine code and therefore it needs to run in a VM which needs to run in an OS. Is this correct? Sry.

Yes, Java runs on a vm. A Java compiler produces byte code for this VM, which then transforms it into instructions for whatever machine it's running on.That's why Java is so portable. The code is the same for all platforms. You just have to make the VM for those respective platforms.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Nineshadow said:

Yes, Java runs on a vm. A Java compiler produces byte code for this VM, which then transforms it into instructions for whatever machine it's running on.That's why Java is so portable. The code is the same for all platforms. You just have to make the VM for those respective platforms.

Android's system architecture is a great demonstration of this:

f8VcYzs.png

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, Nuluvius said:

Android's system architecture is a great demonstration of this:

f8VcYzs.png

Thanks, this graphic is really helpful. Is the android kernel just a regular Linux one? 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, BuntzenB said:

Thanks, this graphic is really helpful. Is the android kernel just a regular Linux one? 

It will be whatever that particular device manufacture has rolled/customized.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, BuntzenB said:

Thanks, this graphic is really helpful. Is the android kernel just a regular Linux one? 

Bit modified, like with every distro.

Link to comment
Share on other sites

Link to post
Share on other sites

Javascript on Node.js has the best learning curve as the first language.

Link to comment
Share on other sites

Link to post
Share on other sites

Also, Node.js is frustrating. It's not even a real language.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

It's runtime for JavaScript - best script language we have.. 

You can't compare JS and C++, you can only compare JS and other script language.

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, Clechay said:

Explain

I think it's you who should explain, since you made the claim that it's the best scripting language.

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/25/2016 at 6:19 PM, Dat Guy said:

Also, Node.js is frustrating. It's not even a real language.

Ah - finally we don't have to argue :P

although tbh neither is english xD 

Link to comment
Share on other sites

Link to post
Share on other sites

On 5/27/2016 at 11:57 AM, Clechay said:

It's runtime for JavaScript - best script language we have.. 

You can't compare JS and C++, you can only compare JS and other script language.

 

12 hours ago, Clechay said:

Explain

 

I would list a lot of things before JS

For example: Ruby, sh, Python, LUA, PHP....

what makes you so sure that it is the best scripting language? Assertations need to be backed up - questions don't.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, BuntzenB said:

 

 

I would list a lot of things before JS

For example: Ruby, sh, Python, LUA, PHP....

what makes you so sure that it is the best scripting language? Assertations need to be backed up - questions don't.

lua master race ;)

At least for embedded stuff.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

On 28/05/2016 at 4:51 PM, Dat Guy said:

Javascript is, by far, not the best script language we have.

6 hours ago, BuntzenB said:

I would list a lot of things before JS

Why? What the hell is there all of this specific hatred for this one language? I find these statements extremely narrow minded indeed and can only be lead to speculate that they have originated from a sour lack of fundamental knowledge.

 

JavaScript is not deprecating in any way whatsoever, it enjoys very wide and very varied usages. There are great frameworks for it: Node.js, AngularJS, Knockout and JQuery for a few... That make cross platform development extremely easy whilst being able to adhere to good clean and well recognised architecture and patterns. In short it is a very versatile tool - for the right job - to have in one's toolbox. This language has a strong future.

 

It is indeed both the best and the worst language when applied to differing contexts! As is true of anything... Would you try to plaster a wall with a bread knife?

 

I'm able to say that I have Pascal/Delphi and Visual Basic in my toolbox. Those are languages truly worthy to be mocked and hated upon in this day and age; they are deprecated, have little support and very few libraries (in the case of Delphi). I still won't mock or hate on them though because as a generalist Software Engineer I have learned to appreciate the beauty in any language (even Objective C) and one can never quite know when knowledge of a specific tool (no matter how old or how trivial) may come to one's aid.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Nuluvius said:

JavaScript is not deprecating in any way whatsoever, it enjoys very wide and very varied usages. There are great frameworks for it: Node.js, AngularJS, Knockout and JQuery for a few... That make cross platform development extremely easy whilst being able to adhere to good clean and well recognised architecture and patterns. In short it is a very versatile tool - for the right job - to have in one's toolbox. This language has a strong future.

I agree with your post at some points, but you clearly have no idea what you're talking about, since you compared Node, Angular and jQuery, calling all of them frameworks. Node is a runtime environment for JS on desktop, Angular is a JavaScript front-end framework and jQuery is a front-end library.

Link to comment
Share on other sites

Link to post
Share on other sites

14 minutes ago, Gachr said:

I agree with your post at some points, but you clearly have no idea what you're talking about, since you compared Node, Angular and jQuery, calling all of them frameworks. Node is a runtime environment for JS on desktop, Angular is a JavaScript front-end framework and jQuery is a front-end library.

Sorry but where did I compare them? Framework is applied in the very broad sense only - as was the context. Seems that it is you who clearly have no idea what you are talking about I am afraid :)

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

"Everyone who does not think of Javascript as the best scripting language out there is just too stupid" (sorry for paraphrasing your too long posting) is not exactly a good point.

 

Neither Pascal/Delphi nor Visual Basic are "deprecated" or "truly worthy to be hated", but then again, none of them are scripting languages. I think all of us agree with you that there are languages with which no one should be bothered, I still think you lost the track.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

22 minutes ago, Dat Guy said:

"Everyone who does not think of Javascript as the best scripting language out there is just too stupid" (sorry for paraphrasing your too long posting) is not exactly a good point.

Sorry but where exactly did I say or elude to that?

 

You've missed the point completely. The point was simply 'the right tool for the right job' and if you are incapable of appreciating that fact then you are clearly inexperienced.

24 minutes ago, Dat Guy said:

Neither Pascal/Delphi nor Visual Basic are "deprecated" or "truly worthy to be hated", but then again, none of them are scripting languages. I think all of us agree with you that there are languages with which no one should be bothered, I still think you lost the track.

They are in no way industry relevant choices anymore - unless of course one is going to specifically support legacy code.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Nuluvius said:

Sorry but where exactly did I say or elude to that?

Let me remind you:

52 minutes ago, Nuluvius said:

I find these statements extremely narrow minded indeed and can only be lead to speculate that they have originated from a sour lack of fundamental knowledge.

You can perfectly have a ane aversion towards Javascript and still have the fundamental knowledge to know why. And, with all due respect, "industry relevant choices" are rarely made for technical reasons; not that "the industry" wouldn't use Pascal/Delphi or Basic anymore. Long-term projects don't change their platforms every two years. Did you know that COBOL is still a big player in the financial industry?

 

Javascript sucks. The fact that there is an overwhelming amount of incompatible Javascript libraries does not invalidate that.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, Nuluvius said:

Sorry but where did I compare them? Framework is applied in the very broad sense only - as was the context. Seems that it is you who clearly have no idea what you are talking about I am afraid :)

You did here:

Quote

There are great frameworks for it: Node.js, AngularJS, Knockout and JQuery for a few...

They are all completely different things, only two of them actually being frameworks.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×