Sinisterly
What out of these languages should i try? - Printable Version

+- Sinisterly (https://sinister.ly)
+-- Forum: Coding (https://sinister.ly/Forum-Coding)
+--- Forum: Coding (https://sinister.ly/Forum-Coding--71)
+--- Thread: What out of these languages should i try? (/Thread-What-out-of-these-languages-should-i-try)

Pages: 1 2 3 4 5


RE: What out of these languages should i try? - Anizeb - 11-09-2013

Really, this is highly dependent on your goal and personal taste.

Are you learning for fun or profit?
Are you hoping to develop games or applications?
Do you hope to release to fellow programmers, or to the general public? Or even just keep it private?
Do you prefer simplicity or power?
Are you dedicated enough to dive into the deep-end?

Python is a simple, clean language, so it gets my personal Seal of Approval. But it's not very well suited to public release and there's not a lot of hope in the job market for Python programmers, and it's not very suited to create high-end games, though we have to be honest, I doubt you'll be doing that any time soon, regardless of intent.

Java, on the other hand, is a hideous (In my opinion. Ugh, curly brackets...), complex language, but it posts power and adaptability. You can create applications for basically any system. Java is natively supported in all OSes, so far as I'm aware. Including mobile. You also have the ability to create applets for web-use, a lot like Flash(but not a steaming pile of shit).

As for the C family, I have to say I'm not very familiar with it. So far as I'm aware, it's about the same as Java, in difficulty of learning and in how powerful it is (Smite me now, should I be drastically incorrect in saying that.). They aren't, however, quite as far-reaching as Java is.

All that said, Python is probably want you really want. It'll help get your feet wet. As I said, it's a simple and clean language, and even the more advanced programs can easily be read by newbies, assuming it's written according to PEP 8.

Whatever you end up choosing, just remember that you're probably not going to be making anything graphical anytime soon. Some people don't give that a thought, they imagine they'll be whipping up something more... "tangible", I guess... and they end up disheartened when they're stuck with a text interface.


Disclaimer: I'm a Python fanboy and I hardly know anything about the finer points of other languages, so don't bite my head off if I said anything too ridiculous. >>


RE: What out of these languages should i try? - cxS - 11-09-2013

(11-08-2013, 02:41 AM)Aristotle Wrote: I clearly stated "in my opinion" in my reply. Therefore, your first few sentences were absolutely unnecessary and it just shows that you're desperately grasping for something to debate about. So much so, that you rushed straight to the reply button before taking note of what I said.

Sure, I agree that people are responsible for maintaining bad habits majority of the time. However, some languages actually encourage bad habits. Some also encourage you, as a programmer, to depend on the compilers or the VM or whatever to do a lot more of the "behind-the-scenes" work than you should.

In addition to this, I never said that the language forces you to adopt bad habits. I was merely enforcing the point that many higher-leveled languages such as VB.NET and Java are designed to make things easier for the programmer. And in my opinion, they make it much /TOO/ easy. Not that this makes them bad languages, it just doesn't make them great languages to learn from... Especially as a beginner. Many important things will be handled for you that you would otherwise have to handle by yourself in languages such as Assembly, C/C++, etc. This usually makes for a difficult transition when switching from VB.NET to a language like C.

I'm just against VB.NET as a first language, so I stated my opinion as to why someone should not start with VB.NET. I've used VB.NET many times, and I will probably never recommend it to someone. That's all. My opinion remains intact.

Also, there are many other reasons which I won't bother speaking of since they can be easily found online. It would also involve me speaking of concepts that a total beginner wouldn't understand. This would therefore prevent them from fully understanding the significance of these particular downfalls.

tl;dr - You just can't comprehend the point behind my post. I was simply saying the obvious; it is your opinion and not facts to re-assure someone reading your post that it's not by any means to be taken with more than a grain of salt, as any opinion would be. You're just raging because I disagree.

Opinion or not, it's still not very good reasons, hence why I said: "That's nowhere near a reason why one shouldn't begin with VB.net."

I could've said, I believe religion is silly because it can't be proven that it's exactly as it is interpreted. My opinion, yet still, no reason why one shouldn't have a religion, even though I am non-religious. Some people just need a faith to believe in, and that is their reason.

Just because it's your opinion, doesn't mean it's based on any good supporting ideas, and that's what I pointed out.

No language encourages bad habits. If it encourages something, it's meant to be part of that language, and therefore is not bad habit. If it is a bad habit, you are deviating from what is proper and the blame is on YOU, not the language. Very simple proof by induction for common sense here... A language is designed to encourage you to code the way the language was intended to be written, as by a programmer.

Quote:In addition to this, I never said that the language forces you to adopt bad habits.

Does this not just prove that it's the programmer that chooses to adopt these bad habits then and not the language by any means as you were implying?

Quote:I was merely enforcing the point that many higher-leveled languages such as VB.NET and Java are designed to make things easier for the programmer. And in my opinion, they make it much /TOO/ easy.

If it was too easy, why do I see so much horrible code then? Noting, that I see even worse code from C++ beginners and that is a language multiples more difficult than a .NET language. It was designed to be easy for fast application development, not to be used as a starter kit for an intro to programming, although that is a side effect of the framework that it's intended to be used with. In that case, I see it as a much better language to start off with, and this is my opinion, but there's much more factual reasoning behind my opinion on this one.

Quote:Not that this makes them bad languages, it just doesn't make them great languages to learn from... Especially as a beginner. Many important things will be handled for you that you would otherwise have to handle by yourself in languages such as Assembly, C/C++, etc.

And who is guaranteed to always move on to becoming a C/C++ programmer or an Assembly programmer? (Rhetorical question) So why compare it's requirements to other languages? I know many professional developers that don't write in Assembly period, because it's just not required for their scope of work. Adversely, I know many who have never learned it, nor even touched a language like C/C++. I have touched all of them, including .NET. I know many web developers would not though, and keep in mind, there is ASP.net.

Quote:I'm just against VB.NET as a first language

Clearly, so I see this less of an open minded debate here and more of a biased opinion due to your hate possibly influenced by rumors and other bad words about VB.net.

Your opinions stay as is, as do mine, but that doesn't mean that your opinions make sense.


RE: What out of these languages should i try? - cxS - 11-09-2013

(11-08-2013, 09:05 AM)w00t Wrote: Please stop reccomending people learn VB. Why not something like C#, which, while still being a shit language for just about everything, at least looks more like a programming language and less like an infants journal.

Explain why C# or VB.net are shit languages.


RE: What out of these languages should i try? - Tear - 11-09-2013

(10-08-2013, 10:03 PM)Ghost Wrote: Im thinking about Pyhton, C, C++ and java i was wondering your opinion whats good to start with when i have no background in this area.

Start with Python.
I'm learning right now, it's so fun.
Go on Project Euler and try to figure the problems out.
Make things for your math class.

I made a slope calculator, pythagorean theorem calculator, diagonal of a 3d rect. prism/cube calculator, and a diagonal of a 3d triangular prism calculator.

It was just fun Biggrin
I could help you with a few things.


What out of these languages should i try? - Adorapuff - 11-09-2013

(11-09-2013, 04:25 AM)Tear Wrote: Start with Python.
I'm learning right now, it's so fun.
Go on Project Euler and try to figure the problems out.
Make things for your math class.

I made a slope calculator, pythagorean theorem calculator, diagonal of a 3d rect. prism/cube calculator, and a diagonal of a 3d triangular prism calculator.

It was just fun Biggrin
I could help you with a few things.

I second this. I release code from my math class all the time.


RE: What out of these languages should i try? - w00t - 11-10-2013

(11-09-2013, 04:11 AM)cxS Wrote: Explain why C# or VB.net are shit languages.

For one, you know two languages are shit when they, and a few others, all get assembled to the same interpreted language.

No native support for non-Windows computers, not terribly efficient, not open-sourced, no real standard.


RE: What out of these languages should i try? - cxS - 11-10-2013

(11-10-2013, 07:13 AM)w00t Wrote: For one, you know two languages are shit when they, and a few others, all get assembled to the same interpreted language.

No native support for non-Windows computers, not terribly efficient, not open-sourced, no real standard.

lol, I have to say, how does that prove anything? :S You don't even have a valid reason... For all this says, I could turn it around to consider every programming language shit because they all somehow have to be translated into machine code that the processor can read. I don't see how something such as byte code or an assembly interpretation of it would be any different either.

Quote:No native support for non-Windows computers, not terribly efficient, not open-sourced, no real standard.

1. Who is guaranteed to always be required to work on a non-Windows OS these days? There's a handful of people, but this isn't all, and thus an invalid reason IMHO.
2. For being efficient, it really depends on the coder, regardless of what language they are using, so I'd consider this insignificant since the .NET framework is great for rapid application development, which is an advantage that balances things out over most other cross platform languages, and I don't like Java because of Jata Auth and running through the JVM.
3. Not being open source != shit, not sure how you claim this conclusion...
4. No real standard? Explain? There are standards for .NET languages. Just take a look at MSDN.

Of the possible valid reasons I would've accepted, you didn't list any. And for those that do exist, there are ways of getting around them for the proficient .NET programmer. It's all the noobies that demonstrate bad code that give .NET a bad name. Most don't have a very accurate understanding of how it works or even what the JIT compiler is or does.


RE: What out of these languages should i try? - w00t - 11-10-2013

How do you not see how IL != native language? For one, the processor can actually understand one, removing a layer of abstraction. It should tell you something about the languages you choose when different languages using the same exact IL from the same exact company can't agree on how things should be done.


1. Pretty much anyone writing applications that will be used by businesses better be able to roll out to more than Windows machines.
2. You do realize C#/VB/F#/Boo/J#( there is a fuckton more ) run through a virtual machine, right?
3. It certainly contributes, for all you know your super secret C# encryption application is backdoored.
4. Defined != standardized. The very existence of Mono, and other non-Microsoft uses of MSIL, highlight that there is not a standard.


RE: What out of these languages should i try? - cxS - 11-10-2013

Quote:How do you not see how IL != native language?

I do, but that is entirely beside the point; the part that you didn't get from my response. As I previously said, who is required to always use a native language or write in a low level programming language? Just because it's not ASM for instance doesn't make it bad, that's only your opinion without supporting evidence.

Quote:the processor can actually understand one

A native programming language's code? :S No... It has no visibility to what language the code was created from, it only reads the instructions as opcodes usually referred to as byte code. The only difference is that .NET takes one extra step to get there.

Quote:1. Pretty much anyone writing applications that will be used by businesses better be able to roll out to more than Windows machines.

lol, mind providing an example of this? Wink Unless the company is specialized for Linux development, nearly all companies use Windows machines for a business environment because it makes the most sense in numerous respects. Unless your employee's are in the IT field, no business owner wants to pay for the time and energy it takes to train their employees to learn Linux, when, keeping in mind, most people can hardly even operate Windows sufficiently. Software, among many other things as well.

Quote:2. You do realize C#/VB/F#/Boo/J#( there is a fuckton more ) run through a virtual machine, right?

Lol.. There is no virtual machine, you're thinking about Java. There is the JIT compiler, which takes that IL and compiles it to native code. You are far misinformed here for many reasons. You bash on .NET without having the slightest clue of how it works. The CLR is not a VM either.

There are a couple important points here, but the big one is that at no point is any code ever interpreted. Instead, you can see in step 5 that it is compiled to native code. This a huge difference than loading it into a virtual machine, for several reasons

1. The .NET code is compiled down to MSIL
2. When the program runs it is seen as a .NET assembly rather than native or raw machine code
3. The JIT compiler compiles that IL to native machine code
4. The native code is saved in memory for the lifetime of the program's running time
5. The cached native code is invoked when needed, and IL recompilation no longer occurs, it usually has the largest effect during application load. There are ways around this, by pre-JIT'ing and using a tool like ngen to save a native image cache on your computer.

This is by far, much different than running on a VM. Do you see anything interpreted here? I think you'd better read this: http://blogs.msdn.com/b/brada/archive/2005/01/12/351958.aspx

Then afterwards stop pretending that you know much at all about .NET... (?)

Quote:Defined != standardized

Prove how this makes a difference. Standardized ideas and concepts don't mean that this standardization isn't put into practice 100% of the time either. There are standards for .NET languages: http://www.ecma-international.org/publications/standards/Ecma-334.htm

Just like others, it changes.... C#4.0, 5.0, etc...

Quote:The very existence of Mono, and other non-Microsoft uses of MSIL, highlight that there is not a standard.

How so? Mono is not even a Microsoft project.... You don't realize that? :S

So far I don't see any proof or validity in your points, and the rest is all opinion that you try to force as fact.


RE: What out of these languages should i try? - w00t - 11-10-2013

When I compile a program in C, it gets converted and stored on the hard drive. To run the program, the program is transferred from the hard drive to RAM, then segments are sent to the CPU for processing. The use of an IL throws another step or two in that process.

The JVM is a JIT compiler. Look it up. The core difference between the two is that Java sandboxes the code more from the running computer, whereas the .NET framework is just pure conversion

The second step of the CLR is interpretation, by the definition of the word. It converts information of one type( MSIL ) to another type( ASM ).

A lot of companies might not use Linux, but mixed environments between OSX/Windows isn't uncommon( and, in fact, most businesses do have Linux somewhere )


Because Mono is not a Microsoft project, and it is not well defined how specific parts of the .NET languages should be assembled and ran, you cannot expect that the same code will assemble and run the same on every computer, a key aspect of portability. It may be well defined, in that there are standard functions and objects that are expected to complete a certain task, but that is as deep as the documentation goes.