Jump to content

What's the gain on learning multiple languages?

Lii

Except for job purpose, what's the real gain?

 

To me it's seems just an useless "war" between two programs that can make the same job, but their differ just for a couple of functions and the gui..

 

Link to comment
Share on other sites

Link to post
Share on other sites

27 minutes ago, Xvaster said:

Except for job purpose, what's the real gain?

 

To me it's seems just an useless "war" between two programs that can make the same job, but their differ just for a couple of functions and the gui..

Except not all languages do the same thing. Plus some do certain things easier.

You wouldn't use Python and C for the same purpose (not exclusively), but they both still exist and are a viable language.

 

But I think for programmers it is more important to be adaptable.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

There's different reasons you learn different languages.

I won't be developing an operating system with HTML, but my website will require HTML

 

Some projects require a different assembly or way they manage memory addressing

Community Standards || Tech News Posting Guidelines

---======================================================================---

CPU: R5 3600 || GPU: RTX 3070|| Memory: 32GB @ 3200 || Cooler: Scythe Big Shuriken || PSU: 650W EVGA GM || Case: NR200P

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Slottr said:

There's different reasons you learn different languages.

I won't be developing an operating system with HTML, but my website will require HTML

 

Some projects require a different assembly or way they manage memory addressing

Html isn't a language ; However I think that I've got what do you mean, but also no, I mean even if a problem cannot be "directly" solved, most of the times can be cozen

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Xvaster said:

Html isn't a language ; However I think that I've got what do you mean, but also no, I mean even if a problem cannot be "directly" solved, most of the times can be cozen

It depends on the bigger picture. Sure you can add numbers in a huge variety of languages, but if that's only a small part of that then you need to see which route would be the most efficient and cohesive to the global scale of your project.

 

A lot of software or large scale websites use a mix of languages just for efficiency

Community Standards || Tech News Posting Guidelines

---======================================================================---

CPU: R5 3600 || GPU: RTX 3070|| Memory: 32GB @ 3200 || Cooler: Scythe Big Shuriken || PSU: 650W EVGA GM || Case: NR200P

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Xvaster said:

Except for job purpose, what's the real gain?

Different languages are good for different things. People don't just learn new languages for sport.

13 minutes ago, Xvaster said:

Html isn't a language

It is a language, specifically a HyperText Markup Language.

14 minutes ago, Xvaster said:

However I think that I've got what do you mean, but also no, I mean even if a problem cannot be "directly" solved, most of the times can be cozen

You can't write a web page in C. You just can't. Browsers won't execute your C program. The only dynamic programming language browsers will interpret is JavaScript. You can write C code on the backend that will generate JS webpages but ultimately what you send out to the client can't be in just any language.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

29 minutes ago, SpaceGhostC2C said:

I was once told: "Don't learn a language, learn to program."

 

Then of course I didn't, but it was good advice nonetheless :P

dont learn to code, code to learn - also true

 

as already pointed out, some things are easier with some languages

and for me the language i use is mostly all about the library they offer and which fits my need best

java / python  have great libraries for creating rest-api's

c# / c / c++ have great libraries for making games (opengl, unity, ..) [other languages have frameworks for that aswell you can use opengl with java]

php / javascript (+ html ..) for websites

c / c++ if you want to write an os

 

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Sauron said:

You can't write a web page in C. You just can't. Browsers won't execute your C program.

I sense DatGuy coming.

 

2 hours ago, Xvaster said:

but also no, I mean even if a problem cannot be "directly" solved, most of the times can be cozen

There's a few hard reasons to know multiple languages, like performance differences or different target platforms. The in vogue example is: Don't write a game engine in C#, write a game engine in C++ that can be scripted from C#.

But the real reason to learn multiple languages is to learn how languages actually work. Only by learning how languages actually work can you truly understand what you are doing when you write software. This is something that, no matter how hard you try, you cannot learn by learning a single language, no matter how well you know that language.

 

Knowing how the general class of languages works requires generalization. Generalization requires looking for patterns in a wide sample of sufficiently different, but still related, things.

As another example of why learning how languages actually work is important, can you give valid statements from the following language definition?

<statement> ::= <arguments> " " <commands>;
    <arguments> ::= <argument> | <argument> <arguments> | <arguments> " " <arguments>;
    	<argument> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "A" | "B" | "C" | "D" | "E" | "F";
    <commands> ::= <command> | <command> <commands>;
    	<command> ::= "+" | "-" | "*" | "/";

Your hint is that it's a simple language and you probably already know it. Oh, and the metalanguage here is Backus-Naur-Form.

 

Let's assume that you can give valid statements from that language. Excellent. Let's also assume that you've identified the common name of the language. Since you've identified the known language, you know what the semantic meaning of it's tokens are. Great. Now, write a program that can run the language.

 

Stated differently, write me a program that takes well defined inputs from the description above and produces well defined outputs, which is what all programming is.

Still stuck?

Spoiler

It's a calculator. I've asked you to write a postfix calculator. Something that every programmer should easily be able to do.

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

13 minutes ago, straight_stewie said:

I sense DatGuy coming.

Real programmers write in binary using the butterfly effect to flip bits in memory. Anything more bloated than that and you're just a disgusting pythonista shill with more money than talent.

Spoiler

Ici on concurrence l'autre topic du bot V5 machin la ...

 

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, Xvaster said:

Except for job purpose, what's the real gain?

If you are applying for a Junior developer role at a given language in a company where they train freshman then yes. Aside of that if you write that you "know" X amount of languages yet you don't have years of experience to cover that then for a recruiter (at least IT guys) it's a meme. I was participating in some recruitment processes and I've seen Python 5/5 from a 1-year experience junior  or 3/5 C based on an Arduino basic app...

7 hours ago, Xvaster said:

To me it's seems just an useless "war" between two programs that can make the same job, but their differ just for a couple of functions and the gui..

Usually language itself is secondary (but not always) and you need to know some sort of a platform. Like you can have 5-10 years of experience as a data analyst in Python with Pandas, CUDA and what not but you still can be junior or less when it would come to Django/Flask/webdev type of Python work. Also your coding habits and practices can vary greatly between those two cases.

 

And also there are related languages. If you are a Java developer that is/were doing Android app development you may already be doing Kotlin. If you are Python or Ruby or PHP backend webdev you may also go into fronted with HTML/JS/CSS, then UX/UI, SEO and then JS single page application frameworks like Ember.js or Angular (quite often companies aren't looking for a JS developer but for an Angular or whatever stack-JS they need) which then pulls API/REST on the backend, maybe even microservices so you may end up knowing a thing or two about Docker..., Kubernetes or AWS.

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, Xvaster said:

To me it's seems just an useless "war" between two programs that can make the same job, but their differ just for a couple of functions and the gui..

I can understand your point of view, in my honest opinion you are not wrong :D

 

I truly believe languages should be the least of the concerns, but time to time I get to see people debate about programming languages, which I find not only pointless but also a complete waste of time, If only they were the put the exact same passion into improving their code, I won't rant about the things I've had to refactor!

 

Bottom line is, once you learn a single language it becomes trivial to learn another, it doesn't matter if your first language was high or low level.

 

Take that with a bucket of salt because I'm just a junior back-end :) but I've given tasks at work that involved learning languages or skills on the fly.

Link to comment
Share on other sites

Link to post
Share on other sites

17 hours ago, Xvaster said:

Html isn't a language

Yes, it is, like Postscript is a language.

 

17 hours ago, minibois said:

You wouldn't use Python and C for the same purpose (not exclusively)

I do. (edit: I stopped using Python, so this is not entirely correct.)

 

17 hours ago, Sauron said:

You can't write a web page in C. You just can't.

Of course you can. A web server understands any language that can emit text.

 

Quote

Browsers won't execute your C program.

Of course they will. Have you tried WASM yet?

 

15 hours ago, straight_stewie said:

I sense DatGuy coming.

?

 

------------------------------------------

 

Programming languages are not a job-exclusive thing. Of course you'll be fine as a developer when your portfolio has a dozen languages (because you can work quite everywhere in every development-related job), but not everything in life is about work. Lisp, for example, will change the way you think. Also, maybe one day you'll think: Hmm, a missing project which I would want to use. I'll write it myself. It is a good idea to know which language would make it easier than others.

 

If all you have is a hammer, every problem looks like a nail. But you really shouldn't apply a hammer to your carpet.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

15 minutes ago, Dat Guy said:

Of course they will. Have you tried WASM yet?

Fair, but I could argue WASM is just an extension of JS.

Quote

WebAssembly’s FAQ page agrees:

“WebAssembly minimizes costs by having a design that allows (though not requires) a browser to implement WebAssembly inside its existing JavaScript engine (thereby reusing the JavaScript engine’s existing compiler backend, ES6 module loading frontend, security sandboxing mechanisms and other supporting VM components). Thus, in cost, WebAssembly should be comparable to a big new JavaScript feature, not a fundamental extension to the browser model.”

[...]

As it is now, WASM cannot replace JavaScript and it was never intended to. (Even their own FAQ addresses this misconception. “While WebAssembly will, over time, allow many languages to be compiled to the Web, JavaScript has an incredible amount of momentum and will remain the single, privileged…dynamic language of the Web.”

sauce

 

Building an entire webpage out of WASM would seriously limit your potential (as well as hinder your performance depending on the specifics), kind of like using native code on Android. Not to mention the browser wouldn't be executing the C code itself so technically I was correct with no further qualifiers...

30 minutes ago, Dat Guy said:

Of course you can. A web server understands any language that can emit text.

A server yes, a browser no. I did say you could use C as a backend.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Sauron said:

I could argue WASM is just an extension of JS.

Mozilla is said to be working on that. The <script> tag should be able to take other languages than JS.

 

2 minutes ago, Sauron said:

Building an entire webpage out of WASM would seriously limit your potential

WASM is not a replacement for HTML.

 

3 minutes ago, Sauron said:

A server yes, a browser no.

You said "web page". A "web page" is what is rendered to your browser (which only understands HTML anyway). And nobody cares about how the HTML was produced.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Dat Guy said:

You said "web page". A "web page" is what is rendered to your browser (which only understands HTML anyway). And nobody cares about how the HTML was produced.

Well no, there's an important distinction between the HTML that is generated by the backend and that which is generated dynamically within the browser by interpreting JS or WASM.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

The browser does not generate any (non-intermediate) code. All it does is interpreting whatever the backend provides.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, Dat Guy said:

I do. (edit: I stopped using Python, so this is not entirely correct.)

Of course you do ?

 

Maybe I should have said two way more different languages.. Like Assembly or .... Visual Basic?

Of course it's more about the programmer and not the tool, but if you have a project I don't think anyone will ever have to make a decision to use either Assembly or VB, just because they wouldn't make sense for the same project.

 

To OP - because I think you are well aware of how the real world works @Dat Guy - the reason there are many different languages is because you want diffierent levels of accessibility and easiness.

Simply put, some languages are more difficult, but can do a LOT and do it efficiently (as efficient as your code is), while others just simply easier to get going with, but may require work-arounds for certain more difficult tasks.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, Dat Guy said:

Of course they will. Have you tried WASM yet?

That's hilarious. C to WASM was exactly where I was thinking you would go with it when I wrote that.
 

5 hours ago, Dat Guy said:

But you really shouldn't apply a hammer to your carpet.

For your future reference, carpet is frequently nailed to the floor.

An abbreviated algorithm for installing carpet, suitable for installation in a room with a bare wood subfloor is as follows:

  1. Nail a tack strip to the subfloor, 3/8 inch away from the wall around the perimeter of the room
  2. Lay down padding
  3. Lay and trim carpet
  4. Stretch carpet to edge of room and nail to tack strip every 5 inches.
  5. Tuck left over edges under wall
  6. (Re)Install floor moulding.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, minibois said:

Maybe I should have said two way more different languages.. Like Assembly or .... Visual Basic?

They can still be used for the same thing... if you're even weirder than I am. :D 

 

4 minutes ago, straight_stewie said:

That's hilarious.

If I may repeat myself this time: ?

 

5 minutes ago, straight_stewie said:

For your future reference, carpet is frequently nailed to the floor.

That... was not my point. Anyway, I will remember this as a bad analogy. Thank you.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Dat Guy said:

They can still be used for the same thing... if you're even weirder than I am. :D 

can != should

 

You can mow your lawn with fingernail cutters, doesn't mean you should.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

25 minutes ago, minibois said:

but if you have a project I don't think anyone will ever have to make a decision to use either Assembly or VB, just because they wouldn't make sense for the same project.

Unless you're trying to write the first implementation of VB.NET or the CLI. (I purposefully state first implementation because VB.NET, and other CLI technologies, are capable of being self hosting. But it's still required that the first implementation be written with some other technology).

And that's the whole point of the hard reasons for knowing multiple languages: Most large projects rely on multiple technologies and multiple languages to pull them off.

An in-vogue argument against that would be a dynamic website running off a NodeJS backend. But then:

16 minutes ago, minibois said:

You can mow your lawn with fingernail cutters, doesn't mean you should.

 

 

But, the strongest argument to learn multiple languages has nothing to do with any of the hard reasons for learning multiple languages. Learning a new programming language:

5 hours ago, Dat Guy said:

will change the way you think

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

I work in SD. For work we use C#. In school I learned C++. For backend I like Node.js. Thus I know 3 backend languages relatively well but they each have their own spot. At work it helps that I know HTML & CSS, and a ton of other languages. It also helps because If I want to use a library that is language specific I know how to use it vs make my own library for it. 

Link to comment
Share on other sites

Link to post
Share on other sites

1. Someone mentioned VB/VB.Net, it's basically dead, but in the past it was useful because it has a way to program while using gui buttons and was easier to make databases.
2. C/C++ is basically the foundation of all programming languages.
3. Web based Languages like CSS/HTML only can be used when Developing websites,

So in conclusion, you have to learn multiple of them assuming you want to be useful in the workforce.
But I found out after learning C++ everything else was pretty easy anyway to learn.
 

homeofmew (homeofmew#1337)

[ | folding@home | F@A Extreme Over Clocking | Bionic | ]

Bachelors of Science in Mathematics, University of Houston

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, homeofmew said:

it's basically dead

Why?

 

13 hours ago, homeofmew said:

C/C++ is basically the foundation of all programming languages.

Actually, ALGOL is (with exceptions like COBOL and Lisp which are old enough).

Write in C.

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

×