Out in the Open: Man Creates One Programming Language to Rule Them All

Watch
navarre
Badges: 20
Rep:
?
#1
Report Thread starter 6 years ago
#1
http://www.wired.com/wiredenterprise/2014/02/julia/

Stefan Karpinski was building a software tool that could simulate the behavior of wireless networks, and his code was a complete mess. But it wasn’t his fault.

As a computer science grad student with years of industry experience under his belt, Karpinski was far from a programming novice. He knew how to build software. The problem was that in order to build his network simulation tool, he needed four different programming languages. No single language was suited to the task at hand, but using four languages complicated everything from writing the code to debugging it and patching it.

Dubbed Julia, it provides an early glimpse into what programming languages might look like in the not too distant future
It’s a common problem for programmers as well as mathematicians, researchers and data scientists. So Karpinski set out to solve it. He and several other computer scientists are building a new language they hope will be suited to practically any task. Dubbed Julia, it provides an early glimpse into what programming languages might look like in the not-too-distant future.

Today’s languages were each designed with different goals in mind. Matlab was built for matrix calculations, and it’s great at linear algebra. The R language is meant for statistics. Ruby and Python are good general purpose languages, beloved by web developers because they make coding faster and easier. But they don’t run as quickly as languages like C and Java. What we need, Karpinski realized after struggling to build his network simulation tool, is a single language that does everything well.

At one point, he vented his frustrations to Viral Shah, a fellow grad student at the University of California Santa Barbara. Shah introduced him to a computer scientist named Jeff Bezanson. It so happened that Bezanson had recently made a study of language design, and had come to the conclusion that the tradeoffs inherent in most languages were avoidable. “It became clear that a lot of it had been designed haphazardly,” Bezanson says. “If you started from the beginning, you could recreate the things that people liked about those languages without so many of the problems.”

Soon the team was building their dream language. MIT, where Bezanson is a graduate student, became an anchor for the project, with much of the work being done within computer scientist and mathematician Alan Edelman’s research group. But development of the language remained completely distributed. “Jeff and I didn’t actually meet until we’d been working on it for over a year, and Viral was in India the entire time,” Karpinski says. “So the whole language was designed over email.”
The world of programming languages continues to advance. Would you personally be willing to try out this new language? Why/why not?
1
reply
there's too much love
Badges: 19
Rep:
?
#2
Report 6 years ago
#2
Coming from a background with no knowledge of computer science (so more than fairly liable to be talking completely out of my arse here) my only worry would be how difficult/broad this language would be?

Feel free to kick my ass if this is wrong but would this not be a lot more complicated than say, Java?

Which is fine in many regards, it'll be a big step forward in the computer/technology world. But would I would just hope that there would be a good way of teaching it.

I'd also be curious as to if it had basic lessons that could be taught to those who have never touched coding before? Or if it would be so interlinked with most things that you wouldn't be able to use it without knowing a lot of it.
1
reply
CodeJack
Badges: 19
Rep:
?
#3
Report 6 years ago
#3
(Original post by there's too much love)
Coming from a background with no knowledge of computer science (so more than fairly liable to be talking completely out of my arse here) my only worry would be how difficult/broad this language would be?

Feel free to kick my ass if this is wrong but would this not be a lot more complicated than say, Java?

Which is fine in many regards, it'll be a big step forward in the computer/technology world. But would I would just hope that there would be a good way of teaching it.

I'd also be curious as to if it had basic lessons that could be taught to those who have never touched coding before? Or if it would be so interlinked with most things that you wouldn't be able to use it without knowing a lot of it.
Yep this is true. There's a reason why we have different programming languages. The programming language would either be to general for good use, or too big.

While the language may be good for what he needs to cover for his program, it wouldn't be a great solution for the rest of us users.
0
reply
there's too much love
Badges: 19
Rep:
?
#4
Report 6 years ago
#4
(Original post by CodeJack)
Yep this is true. There's a reason why we have different programming languages. The programming language would either be to general for good use, or too big.

While the language may be good for what he needs to cover for his program, it wouldn't be a great solution for the rest of us users.
So I'm probably speaking way too dumbed down for the computer science students but (premised on my original post and your post being correct) that it can't just be split up into different sections of language for different uses because there is no definitive way to break it up.

So the dumbed down example, you're in charge of how to organise the cleaning products in a supermarket:
You put all of the brands together. But suddenly you have toilet cleaner next to oven cleaner next to toilet cleaner on the other side.
so you put out in terms of product. But when someone wants to buy from a brand they might well miss it because the brand it split up. All of your toilet cleaner is next to each other, but the brand is spread out into seemingly random spots to the brand loyal consumer.

Likewise you split the language into different categories for the jobs and they'll be infinite. You split the language into general categories and they'll leave things out?
0
reply
Plainview
Badges: 0
Rep:
?
#5
Report 6 years ago
#5
Babelic!
0
reply
Planto
Badges: 16
Rep:
?
#6
Report 6 years ago
#6
So... what's different about it?
0
reply
CodeJack
Badges: 19
Rep:
?
#7
Report 6 years ago
#7
(Original post by there's too much love)
So I'm probably speaking way too dumbed down for the computer science students but (premised on my original post and your post being correct) that it can't just be split up into different sections of language for different uses because there is no definitive way to break it up.

So the dumbed down example, you're in charge of how to organise the cleaning products in a supermarket:
You put all of the brands together. But suddenly you have toilet cleaner next to oven cleaner next to toilet cleaner on the other side.
so you put out in terms of product. But when someone wants to buy from a brand they might well miss it because the brand it split up. All of your toilet cleaner is next to each other, but the brand is spread out into seemingly random spots to the brand loyal consumer.

Likewise you split the language into different categories for the jobs and they'll be infinite. You split the language into general categories and they'll leave things out?
Your example is pretty confusing but I'll look at the last part.

Programming languages themselves are pretty big and cover a lot of things, but not everything, take this as an example:

Lets say I'm making a game in C#. The game is going perfectly fine, I've got my character, some enemies, a world and some lighting. Great. Now I want to add some particle effects on my characters wand. The C# language isn't so good at doing that on it's own, so I've got three choices:

1) I could write a programming language which has just enough so I can create my game in, including particles
-This would take months too write out a whole new bespoke language, only for this one game.

2) Write out a programming language which does all of what C# does, including particles
- This is a bit better because more people can use it, but it would take even more time than the first option.

3) I could simply write out the particle effect in HLSL (High Level Shader Language) and incorporate it into my C# game with libraries which can be used by any user if they want too.
-This is much much quicker and anyone can use it if they want too.

In short, it's pointless to write "One language to rule them all" when we can simply integrate multiple ones and use libraries.
0
reply
there's too much love
Badges: 19
Rep:
?
#8
Report 6 years ago
#8
(Original post by CodeJack)
Your example is pretty confusing but I'll look at the last part.

Programming languages themselves are pretty big and cover a lot of things, but not everything, take this as an example:

Lets say I'm making a game in C#. The game is going perfectly fine, I've got my character, some enemies, a world and some lighting. Great. Now I want to add some particle effects on my characters wand. The C# language isn't so good at doing that on it's own, so I've got three choices:

1) I could write a programming language which has just enough so I can create my game in, including particles
-This would take months too write out a whole new bespoke language, only for this one game.

2) Write out a programming language which does all of what C# does, including particles
- This is a bit better because more people can use it, but it would take even more time than the first option.

3) I could simply write out the particle effect in HLSL (High Level Shader Language) and incorporate it into my C# game with libraries which can be used by any user if they want too.
-This is much much quicker and anyone can use it if they want too.

In short, it's pointless to write "One language to rule them all" when we can simply integrate multiple ones and use libraries.

My example was only for the 'one language to rule them all'. In that it would surely be hard to break it down into relevant parts because something would always be missing from such a break down, with potentially relevant parts of the language being located else where. At the same time it sounds like it would be hard for anyone to just know all of the language. So you can try to pick and choose which parts to learn, but that will likely mean missing out on relevant features, no?
0
reply
Psyk
Badges: 16
Rep:
?
#9
Report 6 years ago
#9
I wouldn't mind trying it. But I don't really get the choice unless the APIs, libraries, middleware and all the platforms I develop for decide to support it. Which they won't.

A language can be great in theory, but useless for most things unless everyone else in your domain is using it too.

I wish I could use D, but I won't even count on being able to use C++11 any time.
0
reply
adamssmith
Badges: 0
Rep:
?
#10
Report 6 years ago
#10
Awesome information thanks for sharing such a great information with us its really impressive and interesting
0
reply
Lelcats
Badges: 0
Rep:
?
#11
Report 6 years ago
#11
Dat der syntax is spicy, mmm
0
reply
stewardly
Badges: 4
Rep:
?
#12
Report 6 years ago
#12
I paid a visit to one of these African countries called Ghana and have identified a need I want to satisfy. I want to develop a software for a certain class of people who needed it badly. I need a serious software developer. Please hook up and send me a message in private. I will get intouch. Very Urgent !!!!!!
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

Current uni students - are you thinking of dropping out of university?

Yes, I'm seriously considering dropping out (147)
14.54%
I'm not sure (43)
4.25%
No, I'm going to stick it out for now (303)
29.97%
I have already dropped out (26)
2.57%
I'm not a current university student (492)
48.66%

Watched Threads

View All