Advertisement

Google Go!

Started by January 05, 2010 07:47 AM
59 comments, last by Codarki 14 years, 10 months ago
Quote: Original post by WazzatMan
A graphical interface for procedural programming?

How is that supposed to work?
I remember seeing a one, where program flow was all done by making something inspired by truth table. The program would flow down the rows, and different branches were displayed in columns. Each column in a table represented one path, such as an if/else, a switch/case or polymorphism.
Quote: Original post by Marmin
[Rant]looking at the examples it seems a mixture of Delphi and C. Is there a real need for just another text based p.l.? Why is there no real innovation in this matter. Graphical interface, etc. We need change! I don't see a big future for this but there are always people willing to use it.


I don't think the "Next Great Programming" language will necessarily differ on syntax, but rather on the concepts it provides. I do find syntax important, but it is secondary: it has to express new ideas in a readable manner, and not merely express old ideas in a different manner.

I don't know your background, but if you want to get to know languages which are different from the mainstream, I'd suggest

  • Oz, Erlang if you want to see multithreading made easy.

  • Coq if you want to see what an uber-typesystem looks like, which rather than just allowing you to express that a sorting function "takes a list and returns a list" (and thus allows you to return the empty list each time without compiler errors), makes it possible for you to tell the compiler that the returned list is actually a permutation of the first list in which every item is ordered.

  • Common Lisp for metaprogramming

  • Prolog, Mercury for logic programming

Advertisement
Quote: Original post by phresnel
The initial goal of free software was (and is) not to make maximum profit, but to bring, if I may say so, neighbourhood and comradeship back to computing, as it was there before commercialisation of software.


Yes because everyone who writes software can clearly afford to pay to go to university their entire lives and write software out of the good of their hearts and magical unicorns and bunnies will bring us wonderful feasts to feed our families and pay for our homes.


People need X
People make X
People need money.
People make X for money.


Same paradigm that has existed for all of eternity. Just because a bunch of people who fail economics don't like it, doesn't mean they have the right to actively try to destroy my career.
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
Quote: Original post by Marmin
[Rant]looking at the examples it seems a mixture of Delphi and C. Is there a real need for just another text based p.l.? Why is there no real innovation in this matter. Graphical interface, etc. We need change! I don't see a big future for this but there are always people willing to use it.


Visual programming is not new, its actually an old idea and a very not useful one and thus far all attempts at it have yielded no useful results. Visual programming simply does not scale. It is actually a misconception to think that visual is more advanced but actually visual is more intuitive and less advanced. Examples from human history -> pictograph -> symbols, geometry before algebra, topology before algebraic topology, physics vectors before linear algebra, newtonian vs lagrangian mechanics. I could go on.

I do think a break through in code back up, collaboration , storing (database)and views (zoom out to visual, zoom in to text) is imminent. Say next 100 years considering the speed of computer science.
Quote: Original post by SamLowry
Quote: Original post by Marmin
[Rant]looking at the examples it seems a mixture of Delphi and C. Is there a real need for just another text based p.l.? Why is there no real innovation in this matter. Graphical interface, etc. We need change! I don't see a big future for this but there are always people willing to use it.


I don't think the "Next Great Programming" language will necessarily differ on syntax, but rather on the concepts it provides. I do find syntax important, but it is secondary: it has to express new ideas in a readable manner, and not merely express old ideas in a different manner.

I don't know your background, but if you want to get to know languages which are different from the mainstream, I'd suggest

  • Coq if you want to see what an uber-typesystem looks like, which rather than just allowing you to express that a sorting function "takes a list and returns a list" (and thus allows you to return the empty list each time without compiler errors), makes it possible for you to tell the compiler that the returned list is actually a permutation of the first list in which every item is ordered.



I wonder at Coq though, its been a couple years since I looked at it but I wonder on its real world usefulness. I argue any concepts one can gain from it that are not useless can be found in regular functional languages. Its not turing complete and its type system is undecidable? Although structural recursion can be used on many problems its not as expressive as primitive recursion.

Except for a few niche areas I think program verification is not something useful for most software. Program derivation though is something I have found to be useful.

using category theory (specifically allegories) actually has benefits in real software, functional languages or even linq. The basic ideas of diagrammatic reasoning, natural transformation, fusion and the concept of initial algebras and fold you can create optimized and best time/space case programs sometimes what seems mechanically. In practice not just theory too. This is useful to someone like me without a software engineering background.
Quote: Original post by Daerax
I wonder at Coq though, its been a couple years since I looked at it but I wonder on its real world usefulness. I argue any concepts one can gain from it that are not useless can be found in regular functional languages. Its not turing complete and its type system is undecidable? Although structural recursion can be used on many problems its not as expressive as primitive recursion.

There's a (still experimental) addition to Coq which allows for non-structural recursive functions. And is its type system undecidable? That would surprise me (but then again, I'm far from being an expert on the subject). And would you say that proving your programs correct is inherently useless? Because as far as I know, not many functional programming language offer that possibility.

But other than that, I certainly wouldn't say Coq is usable in the real world. I use it to conceptually prove algorithms correct, or some properties of it, but I wouldn't think of writing an entire program in it and extracting it to, for example, O'Caml. Writing a simple sorting algorithm takes hours, I can't imagine how long it would take to write a fully working application. I mentioned Coq only because of its powerful type system, which is a bit more expressive than those of "regular" statically typed languages. Such a thing is far more interesting, in my opinion, than a new syntax.
Advertisement
Quote: Original post by SamLowry
Quote: Original post by Daerax
I wonder at Coq though, its been a couple years since I looked at it but I wonder on its real world usefulness. I argue any concepts one can gain from it that are not useless can be found in regular functional languages. Its not turing complete and its type system is undecidable? Although structural recursion can be used on many problems its not as expressive as primitive recursion.

There's a (still experimental) addition to Coq which allows for non-structural recursive functions. And is its type system undecidable? That would surprise me (but then again, I'm far from being an expert on the subject). And would you say that proving your programs correct is inherently useless? Because as far as I know, not many functional programming language offer that possibility.

But other than that, I certainly wouldn't say Coq is usable in the real world. I use it to conceptually prove algorithms correct, or some properties of it, but I wouldn't think of writing an entire program in it and extracting it to, for example, O'Caml. Writing a simple sorting algorithm takes hours, I can't imagine how long it would take to write a fully working application. I mentioned Coq only because of its powerful type system, which is a bit more expressive than those of "regular" statically typed languages. Such a thing is far more interesting, in my opinion, than a new syntax.


Is proving programs correct useless? I gave an opinion in the next paragraph which is yes, in most cases. Because as you point out, its takes too damn long to get any real work done. And then what if you're proving the wrong theorem? Deriving a program is quicker, similar principle of leveraging maths but if you are on the wrong track you can notice much more easily and quickly. People usually draw diagrams anyway and write pseudo code. similarly, drawing diagrams which also contain proofs and deriving functions almost mechanically sometimes (Theorems for free , wadler) with not much work is awesome.

As for a powerful type system, i think you can have too much of a good thing. At that point its just too much of a straight jacket. Coq is dependently typed which are not decidable? Its useful maybe for theory and logics people but in practice its too much brain tax. Formal methods reminds me of the bourbaki formal math fad of the early/mid 20th century which quickly faded.

--

On topic, Go seems a very confused language that doesnt know what it wants to be.
Quote: Original post by Mithrandir
Quote: Original post by phresnel
The initial goal of free software was (and is) not to make maximum profit, but to bring, if I may say so, neighbourhood and comradeship back to computing, as it was there before commercialisation of software.


Yes because everyone who writes software can clearly afford to pay to go to university their entire lives and write software out of the good of their hearts and magical unicorns and bunnies will bring us wonderful feasts to feed our families and pay for our homes.


People need X
People make X
People need money.
People make X for money.


Same paradigm that has existed for all of eternity. Just because a bunch of people who fail economics don't like it, doesn't mean they have the right to actively try to destroy my career.


Oh, may I ask in which country you live? You may laugh, but the probability is very high that they have the right to ruin your life and the one of your wife and children, and they may make it impossible for you to buy cakes and books of little pink unicorns, by letting customers decide. Do you want to forbid volunteers or hobbies? Mith, the communist? Funny.

Anyways, your post missed the quotation, which was not about what might happen, but about what the intention is. Reread please.

Sidenote: Oh, and yes, while I am a hybrid commercial/non-commercial/open-source/non-open-source programmer, I indeed don't care about your career, but about friends+me having fun and a good time, and possibly do the one or another good thing in life. Who are you that I should care about your life?
Quote: Original post by phresnel
The initial goal of free software was (and is) not to make maximum profit, but to bring, if I may say so, neighbourhood and comradeship back to computing, as it was there before commercialisation of software.


I'm pretty confident that free software and propietary software can coexist just fine without hurting each other. Software depends on hardware, and hardware depends on business. So software will always depend first on business and, eventually, those who have time to spare to write free software will catch up with the new technological standards and apply them to free-software. Hopefully for business, at that moment, they will be working on the next technology making all the money they can out of it.

In a sense, free-software pushes the industry to advance forward to new markets to exploit. Which is good.
[size="2"]I like the Walrus best.
Quote: Original post by owl
Quote: Original post by phresnel
The initial goal of free software was (and is) not to make maximum profit, but to bring, if I may say so, neighbourhood and comradeship back to computing, as it was there before commercialisation of software.


I'm pretty confident that free software and propietary software can coexist just fine without hurting each other. Software depends on hardware, and hardware depends on business. So software will always depend first on business and, eventually, those who have time to spare to write free software will catch up with the new technological standards and apply them to free-software. Hopefully for business, at that moment, they will be working on the next technology making all the money they can out of it.

In a sense, free-software pushes the industry to advance forward to new markets to exploit. Which is good.


Which is exactly my thought. And if it does not happen like that, in the end it is the customer who decides.

What often makes me curious when one complains about FLOSS is that the solution is "easy": "Just" make better software than those hippies (incl. me :)), you (the complainers, not you owl) are a professional, at last. You are expected to write better software with better performance, better GUI, etc., than a bunch of hobbyists. It's like with every other job in the world. Pros should make it better than hobbyists and volunteers. And if the industry is full of people who are not able to make it better, not even by use of tools hobbyists can't afford, then I think civilians will argue that there is something wrong with the industry ("What? Neighbour Peter can craft a better table than those professional idiots at AEKI? And he is even going to donate it to people?").

Another thing is that those people rant the hell out of the GPL and other dreaded entities of the FLOSS world, and say "my career is in severe danger, oh my children", but at the same time destroy the career of many others, actively or passively, by using or contributing to e.g. wikipedia, in which case the whole market/careers for encyclopedias was practically eradicated.

This topic is closed to new replies.

Advertisement