A New Programming Language Expands on Google's Go (infoworld.com) 173
"One sure sign your language is successful: When people build other languages that transpile into it." An anonymous Slashdot reader quotes a report from InfoWorld:
The Have project uses Go's toolchain, but sports a different syntax and makes key additions to the language... Previously, a language named Oden worked with Go's toolchain to add features that Go didn't support. Now Polish developer Marcin Wrochniak has introduced Have, a language that transpiles to and expands on Go.
In the blog post that introduces the project to Go developers, Wrochniak describes Have as a hobby project, with the goal of becoming a "companion" to Go that addresses some of its common "landmines"... Go uses curly braces in the manner of C/C++, while Have uses block indents, like Python... The way that variable declaration, structs, and interfaces work have all been modified in Have to be more consistent with each other and to avoid internal inconsistencies that Wrochniak feels are a common source of bugs.
In the blog post that introduces the project to Go developers, Wrochniak describes Have as a hobby project, with the goal of becoming a "companion" to Go that addresses some of its common "landmines"... Go uses curly braces in the manner of C/C++, while Have uses block indents, like Python... The way that variable declaration, structs, and interfaces work have all been modified in Have to be more consistent with each other and to avoid internal inconsistencies that Wrochniak feels are a common source of bugs.
Re:Failed to fix the number one Go problem. (Score:4, Funny)
You still can't use the language name as a search term.
This is the same problem that clueless Hollywood producers have when they give their opus an unsearchable title like Next and wonder why nobody watches it and nobody reviews it.
I suggest Seagull, the language that craps all over your Android device and then flies off again.
Re: (Score:1)
"golang"
easy.
Re: (Score:2)
Yes, you can, because it's referred to as 'golang'
We Need More Programming Languages! (Score:5, Funny)
We need at least five new programming languages per year because C++ simply doesn't do the job. C++ doesn't even have a code of conduct! How am I supposed to know what to do if somebody takes offence at my code?
I'm glad to hear they got rid of the curly braces and copied Python. It's a truly excellent idea to have indentation determine program flow. I think this could be extended further and have program flow dictated by the font you use in your editor. Arial instead of if statements, Comic Sans instead of for loops, etc.
Anyway, I'm really happy to see programming languages going the same way as user interface designs, with people desperate to throw away what works and replace it with something inferior because they believe they're innovative and creative. Maybe we could do the same with cars next; I've always thought steering wheels where a stupid idea and you could steer far more easily with a system of cogs and pulleys.
Re: We Need More Programming Languages! (Score:4, Insightful)
Pretty much. Indentation should be about the look of the code in an editor, nothing more. It should be irrelevant as to how the compiler compiles it.
Re: (Score:2)
Unless you're talking about tabs versus spaces. If a compiler encounters one or more spaces at the beginning of a line, it should throw a fatal error. Four spaces my ass... learn to indent properly, dammit.
Re: (Score:2)
I could get behind this if and only if the compiler enforces *exactly* one tab per indent level, and prohibits tabs anywhere else in the line. Without these rules the whole magic of the "anyone can adjust the tab width however they like" feature of tabs gets hopelessly broken.
Re: (Score:2)
Four spaces my ass... learn to indent properly, dammit.
And while you're at it, 2 Spaces! [gocomics.com]
Re: (Score:2)
>.<
Re: (Score:2)
I posted about this last time the python wars were on ;)
there should be 2 concepts that are never co-mingled. there is 'define a block' for the computer and 'define a block' for humans.
python's mistake was that they combined them. what we SEE (and makes sense, based on our 2d vision/brain abilities) needs to be something to show us, quickly, what a block is. indenting works and that's fine.
what the computer PARSES does not need visual 2d help. the computer parser needs to be so robust that it is immune
Re: (Score:2)
guido is a smart guy, but he's not perfect...
I wonder about that. So many blunders in Python, e.g., the whitespace, the inefficiency, the lack of backward compatibility. Could have been great.
Re: (Score:2)
Perl forever! You can write it, and afterward you won't even be able to edit it.
Re: We Need More Programming Languages! (Score:1)
Funny, having started my career on C and eventually C++, I didn't find transitioning indentation based syntax a big deal. At my current and previous two jobs I've used a mix of Python and C, and the indentation has been inconsequential. The post and having to skim past cheap rehashed jokes about such syntax consumes more effort than having to use it for years. I actually slightly prefer the curly brace syntax, but the difference in practice is too small to care.
Re: (Score:2)
Re: We Need More Programming Languages! (Score:4, Insightful)
In all seriousness, yes!
Code that I consider "beautiful" is not just logically pure, it has a readable style thanks to whitespace.
I have seen C code that is instantly understandable because the programmer was free to format it using arbitrary whitespace - something that's not possible with Python.
Re: (Score:1)
I have been tempted to change the Python source code to eliminate syntactic meaning of whitespace outside of strings and between language elements. All indentation should not be a syntactic requirement for the compiler or interpreter. Damn it, Guido stop being such a bloody academic ivory tower bastard.
Re: (Score:2)
for i in range(10):
print "In the loop"
print "In the loop"
print "not in the loop"
If you take away the whitespace the interpreter has no way of knowing when it's in the loop and when it's not. So you'd have to add a "next" statement like BASIC, o
Re: (Score:1)
C++ is for wussies. asm(bly)
HA! Now I have you!
int main() {
__asm__ (
"movl $10, %eax;"
"movl $20, %ebx;"
"addl %ebx, %eax;"
);
return 0
}
Both baby. Scooty-Puff-DA-MAN to the rescue.
Re: (Score:1)
Was going to say this, but minus the humor. There are too many programming languages already and every year or two another is introduced. Then you have dumb startup founders buying into the hype of some new language, so developers have to learn it on top of everything else they have to know and keep on top of. HR then starts posting ridiculous job requirements related to the new language(s), frameworks, and libraries that no one can meet because the languages are too new and not popular enough yet. Then for
Re: (Score:2)
I get annoyed every time someone mentions indentation-based structure and seem to think that it was an original idea in Python. Python contains no original ideas that I'm aware of. No, that's not how I judge a language, but it's one of the criteria I used to decide if I want to learn a language or not.
I also get annoyed every time this discussion happens and someone seems to think that Python would be a great language if only it had curly b
Re: (Score:2)
I truly loved APL's syntax and functionality. It beats Python by a mile, when looking to produce error free code that is succinct and for an APL programmer, easy to read.
s/Have/Have Not/g (Score:4, Insightful)
Please, for the love of the children, can we STOP innovating on curly braces already.
And here I was all pumped up about the Erlang to Elixir upgrade path, repeated for Go, which suffers from the same weird Erlang-like conservatism that isn't suitable for all needs (such as most projects by corporations employing fewer than 20,000 technologists).
Conservatism has its uses, but it's no silver bullet, nor can removing braces make it so.
Re: (Score:1)
Re: (Score:2)
Of course he does. They were the only ones to survive the franchise wars.
What about the Ada way ? (Score:1)
You could do something like Ada does where it has a closing block construct.
For example, loop blocks have an opening "loop" statement and a closing "end loop" statement.
Re: (Score:3)
You could do something like Ada does where it has a closing block construct.
For example, loop blocks have an opening "loop" statement and a closing "end loop" statement.
ALGOL called from the 1950's and it wants its syntax back.
And no .. I didn't warn it about anything.
Re: (Score:2)
No, you just need to wear your fingers out. 7 (seven) extra characters! I can barely span four frets as it is.
Re: (Score:2)
Bass frets?
Actually on a German keyboard it is faster to type begin and end than a curly brace.
Re: (Score:2)
And on an iPad or Android device the language does not even matter.
Only special code editors like Textastic have an extra line of keys for common "programmer symbols".
@Dunkelfalke, if you are on a Mac, consider to make your own keyboard layout with a program called "Ukelele". I just map [] and {} to the german Umlauts (more or less like on an US keyboard).
When programming I switch to the "special" language ;D ... on the other hand with modern IDEs typing { generates the appropriated } anyway.
Re: (Score:2)
I wish. Actually sometimes it's useful to have small hands.
They gave priority to the letters with squiggles like the French? Even so I'd be surprised if it's more than two presses each, even if one of them is the devil's own AltGr.
Re: (Score:2)
Umlauts. So opening a curly brace would be AltGr + 7 and closing it would be AltGr + 0. Both is uncomfortable and they are not really close to each other.
Have small hands myself so I always had to do a classical barre chord instead of using a thumb, even on a narrow neck electric guitar.
Re: (Score:2)
The C-- I know was intended as a portable assembly, mostly for compilers to use as an intermediate language. No "come from" or "do for a while" ala intercal but a variety of low level operations and a low level type system.
I found it interesting but it never took off.
Re: (Score:1)
I actually like ML style: "let foo = bar in zed".
I agree that curly braced languages should stay as curly braced languages, but it's myopic to assume it's the only choice for scoping when designing a new one.
In any event, you're right that what is broken about GO is not really the scoping mechanisms.
Re: (Score:2)
For grownups we still have braces
Call me old-fashioned, but to me braces look weird on people older than 12-15 years old.
Re: (Score:2)
How do you write math without curly braces?
On what level is the math education in your world ??
Most logical statements in math starting with "it exists" (an reversed E) or "for all" (an on the top A) use curly braces.
Curly braces = good. Indents = bad. (Score:5, Insightful)
"Curly" braces to denote blocks of code and semi colons to denote end of statement are the marks of a sane language.
Anything else just asks for subtle bugs.
40 years programming experience has taught me this but if you want to find this out for yourself carry on :)
Re: (Score:2)
This.
I love Python but I fucking can't stand the lack of curly braces.
Re:Curly braces = good. Indents = bad. (Score:5, Insightful)
Indentation is the strongest indicator of block structure to the people reading and writing the code, but the toolchain uses a *different* set of indicators (the braces and semicolons). Any person who is looking at code - especially just quickly scanning code - is going to rely on the indentation to denote blocks first, and then to a lesser degree things like curly braces - the spacing and positioning are simply stronger visual cues.
In most languages, this is what can lead to a few types of subtle bugs, e.g.
if (x y);
doSomething();
Python's stance is that the humans and the tools should use the same block identifiers. Sure there are other ways to solve the problem (like make the tools look for likely errors and warn the user), but Python chose the route of just getting people and tools on the same page - it's not a bad solution.
Personally, I've used Python for many years now, in everything from tiny startups to Fortune 500 companies, for everything from small tools to enormous, distributed systems. Like any language, it has its strengths and its weaknesses, but the indentation is not an issue in practice, but is instead an asset. All of the potential or theoretical problems that people complain about with indentation-based blocks are overblown and simply doesn't occur in practice - at least no more than any other type of problem (I can't even remember the last time we had a bug due to it - probably not in this decade).
If that's not your cup of tea, that's fine. I just find it interesting that (a) it does not actually cause problems in practice and (b) when I hop over to a language like C++ I find that curly braces are just noise and feel wholly unnecessary - just extra stuff to help the tools along, and not there for my benefit as a developer.
Re:Curly braces = good. Indents = bad. (Score:5, Interesting)
Delete the last tab on the last line of a python block. Does the code still run? Almost certainly. Does the interpreter give a warning? Nope.
Now delete the last curly bracket from a C/C++/java block. Does the code compile? Not on your life. And if I have to explain why then you have no business giving an opinion on this topic.
Re:Curly braces = good. Indents = bad. (Score:5, Informative)
I think I get the point you're trying to make, but I'm a bit dubious - it's a syntactically valid change, so there's no reason for the tool to complain. That's in the same class of errors as deleting a digit from a constant, accidentally pressing '+' instead of '-', removing the '=' from a '=' expression, and so on.
I personally don't care if certain people like Python or not - language preference is often fairly subjective. I'm doubtful, however, about claims that the indenting is bad in any objective way - I've seen too many people use it for too many years on too many projects without it being a problem. I mean, don't you think this would be tripping people up constantly if it were a real issue in practice?
I've watched veteran devs pick up Python as well as recent college grads pick it up, and this just isn't an issue. I can maybe/kinda/sorta almost convince myself that I've just been extraordinarily lucky to have never had this be a problem, but for it to not be a common problem for all of those other people, on all of those other projects? Nah, it just doesn't add up. Everything I've seen suggests that this is a problem that could occur in theory, but rarely if ever does in practice.
Re: (Score:2)
Very late post but I still have to add my $.02. I feel like your objection here is too strong and artificial.
I've used both Python and C-style languages including Go for a long time now (15 and 30+ years). I don't really mind either block system. I've had problems with editors doing unexpected things with Python code blocks, and I have to be watchful of that. But in practice I agree with the gp -- it's very rarely a problem except with beginners.
Curly braces are good for auto-formatting, and gofmt really se
Re: (Score:2)
> Real programmers use IDEs with syntax checking.
No true Scotsman fallacy [wikipedia.org].
Re: (Score:3)
The IDE gives the warning. Real programmers use IDEs with syntax checking...
You obviously only do web programming and/or don't program on big systems. I want to see you ssh into a server that doesn't have a GUI and use an IDE to fix a program. You'll fail dramatically and then what will you do?
This is why I use "vi" as my editor. It doesn't require a GUI (there is version with one if you're in a position to use it), and I'm guaranteed vi will be available on every Linux/Unix server I work on. IDE's are also bloated; try to use an IDE on a server with only 1G of RAM total.
Re: (Score:2)
Your post makes no sense.
With x-tags vi/iY is an IDE like any other IDE. And there is no IDE that is "bloated" and needs more than a few hundred MB of RAM. If an IDE needs lots of RAM it is because of the size of your source code ... go figure. Yes, a few hundred MB for Eclipse is a lot. But you are not running a server ... and develop on it ... on 1GB.
Re:Curly braces = good. Indents = bad. (Score:5, Interesting)
Agreed. And more importantly, if you have braces, it is possible for the IDE to programmatically fix the indentation so that it is easy to read. There's absolutely no sane reason to require a programmer to use whitespace for any reason other than between tokens that would otherwise be a single token if shoved together. All other use should be superfluous, and the IDE should make it readable for you without the need for a person to do it.
And the reason braces should be in every programming language, IMO, is that it makes it easier to jump to the end of a block. When I have nested blocks in a properly braced language, I can hit percent in vi, and I'm at the end of that block. I don't have to move the cursor to the beginning of the line and laboriously hit the down arrow key a line at a time until I find a line that isn't indented as far. Therein lies the path to madness.
Want to dramatically improve the programming world in a single project? Design a meta-language for code formatting so that a set of text-based rules can enforce everybody's own quirky code formatting standards. Make it handle at least the twenty or so most popular programming languages. Then open source it under a BSD license so that the interpreter can be readily built into every IDE on the planet. Then, we can finally dispense with all of these silly programming languages that use whitespace syntactically once and for all.
Re: (Score:2)
Apologies in advance for the bad font, but Slashdot stopped allowing because of the trolls, so this was the only way to get indentation. Ugh. There's some irony for you.
I've used GNU indent, and it is maybe 1% of the way to a complete solution, if that. A complete solution needs crazy things like:
* Variable weights for indentation priority between the minimum indentation of a continuation line relative to the first line and colon alignment in Objective-C
* Rules on where whitespa
Re: Curly braces = good. Indents = bad. (Score:3)
Two major issues. One- indent only code is nearly impossible to find bugs in. I've seen teams of programmers look for weeks for the source of an issue, it ended up being 1 line that used a tab instead of spaces. Indentation fails because of such issues.
Secondly, you can't copy paste cleanly from the web with an indentation based language.
Either of those is a disqualified by itself. Both together make it such a brain dead choice nobody should even look at a language that uses it
Re: Curly braces = good. Indents = bad. (Score:4, Informative)
Re: Curly braces = good. Indents = bad. (Score:4, Insightful)
None of those things should ever be an issue in the first place. Are there good reasons to keep an eye on the use of tabs and spaces? Yes, sometimes. Should they ever stop your code compiling or have any effect on how it compiles? Hell no - just as using all caps for variable names, if you choose to do so, shouldn't.
If you get stuck up on indents being a problem, I'll respectfully submit that it's not the language's fault...
By that logic, doesn't any crazy and pointless thing a language might require get a free pass? What if I fork Go and my new language requires each line to be numbered? If you get stuck up on that, it's not the language's fault...
Re: (Score:3)
"nearly impossible to find bugs in" ?? Sorry, but that's at best a wild exaggeration. I have no way of knowing if you've really seen "teams" of programmers spend "weeks" looking for one line being wrong with tabs or spaces, but it strains credulity - if it's true, then that may say more about those developers. Sorry, I'm sure that comes across rude, and that's not my intention, but ... wow. So this code passed your unit tests and there was some corner case w/o coverage in which it resulted only in something
Re: Curly braces = good. Indents = bad. (Score:4, Informative)
I'd bet it's about as much an exaggeration as people claiming that C++'s operator overloading hides all sorts of crazy logic and performance pitfalls. I've been programming in C++ for decades on million-line projects, and not once have I seen anything like that.
I've actually been programming in Python the past few months. Because the indentation require aligns with what you naturally do as a programmer, it hasn't seemed all that problematic to me.
C++ has a ton of really nasty, subtle pitfalls that you just have to learn to avoid through rigorous self-discipline: Don't forget to initialize your variables. Don't forget your virtual destructor. Don't return and use the address of a temporary variable. Don't screw up your copy and move constructors. Etc, etc. Seen all of these cause issues that were tricky to track down in real life.
I dunno, in practice C++ still seems a hell of a lot trickier to use than Python, so I have a hard time getting worked up about indentation when I'm using to working in a language with beartraps and landmines liberally sprinkled throughout it. Maybe I'll have a different opinion if I work on it longer.
Re: (Score:2)
Because the indentation require aligns with what you naturally do as a programmer, it hasn't seemed all that problematic to me.
No, just a survivable wart. If Python did not have significant whitespace, nobody would miss it, but Python having significant whitespace has caused endless complaints, so it is clearly a negative for the language. Other things being equal, fewer warts is better.
Re: (Score:2)
Actually, lots of people would miss it - just go ask on on comp.lang.python for example - it's one of the features that many people really prefer about the language. I for one do. I totally get that you might not like it, but to a /lot/ of people not only is it not a negative, it's a big positive.
Re: (Score:2)
Stockholm syndrome.
Re: (Score:2)
but Python having significant whitespace has caused endless complaints
Can't argue with you there... It's definitely a polarizing feature.
Re: (Score:2)
Re: (Score:2)
Whereas I, who (amusingly enough, perhaps) have been a copy editor, had no trouble at all reading your post. But I also have little trouble reading text in a mirror, or letters that are upside-down. That seems to hint that this may be a cognitive thing, and for some people significant whitespace works and for some people it just doesn't and it won't, and the endless arguing about it might be pointless.
Re: (Score:2)
Secondly, you can't copy paste cleanly from the web with an indentation based language. ... please, reconsider y
If your programming know how is on such a low level that you can not reread something you copy pasted and fix the errors: let me say it bluntly, you should not be programming!!!!
Sorry, I hope I never have to oversee a programmer like that. There is nothing wrong with copying snippets from e.g. Stack Overflow, but complaining the formatting gets messed up and then you can not get it running anymore
Re:Curly braces = good. Indents = bad. (Score:5, Insightful)
Python's stance is that the humans and the tools should use the same block identifiers. Sure there are other ways to solve the problem (like make the tools look for likely errors and warn the user), but Python chose the route of just getting people and tools on the same page - it's not a bad solution.
Sorry but it is a bad solution. I used to be a fan of indentation until I started writing large programs. Such big projects often require refactoring of the initial design and thus massive cut-and-pasting, with all the standard ensuing pitfalls.
This is a problem that clearly didn't occur to the Python designer and to this date is both unsolved and a major source of bugs.
Re:Curly braces = good. Indents = bad. (Score:4)
Well, I too have anecdotes in the opposite direction, so not sure what to say. I've used Python on very, very large projects that have undergone multiple, massive refactorings and I'm not aware of a single time in a refactor that this was an issue. Honestly, as I've read your message and others' and genuinely tried to imagine the circumstances under which it would happen, I'm really struggling. Like, do you have these 10 page functions or something and large swaths of code are being cut and paste willy nilly?
The "major source of bugs" comment - is that "major source of bugs [in programs I've worked on]" or "major source of bugs [for Python programs generally]"? If it's the latter, I'd love to hear more because, again, my experience and the experience of everyone I've ever worked with who uses Python is the exact opposite.
Re: (Score:2)
I've used Python on very, very large projects that have undergone multiple, massive refactorings and I'm not aware of a single time in a refactor that this was an issue.
It's those wrongly refactored lines you aren't aware of that will seriously bite you in the ass.
Re: (Score:1)
Well, I too have anecdotes in the opposite direction, so not sure what to say.
I am: this whole religious war is vapid. I've yet to see anyone in one of these threads post any actual evidence. It's all opinion, anecdote, vague references to use cases, and general handwaving (when it's not simply childish insults).
Now, if someone has some actual data from a methodologically-sound study to show that one of the options - punctuation pairs or whitespace or what have you - is demonstrably superior or inferior, with good probability, then I'll be glad to take a look. But comments like "curl
Re: (Score:2)
I'm exactly the opposite. I've used C for two decades and Python for one. I'm perfectly comfortable in either one and use both on a daily basis. Yet given a choice I'd go with C's
Re:Curly braces = good. Indents = bad. (Score:4, Insightful)
The biggest problem with indentation-as-structure is that tools in general support it poorly. When cutting-and-pasting or moving code around, it's easy to mess up the indentation of the code being transformed. By contrast, I can move around brace-delimited code sloppily, then tell my IDE to auto-indent, and it looks nice and legible. (It also acts as a form of error-checking; if the resulting indentation looks weird, it's a strong signal that I've screwed my blocks somewhere.)
Re: (Score:2)
I guess so? I dunno - somewhat ironically, I do *all* of my Python development in vim and I have no special plugins or anything that assist with it other than the native indent stuff, and it's only with other languages (Java/.Net/ObjC/C++) that I feel the need for a full IDE.
Maybe that's for other reasons though (like other languages being more verbose or something). I just find it interesting that in the scenario in which you feel I should really need the aid of a good tool is where I use the most rudiment
Re: (Score:2)
I see that exactly no major new language projects have chosen to follow Python lead with whitespace. Or to put it another way, if Python had been defined with curlies, nobody would have complained "we want significant whitespace! Please please!".
Re: (Score:1)
Re: (Score:2)
Indentation is the strongest indicator of block structure to the people reading and writing the code,
Not entirely. Indentation tells you were the block is, but it doesn't tell you where the block ends. That's implied by seeing more stuff in the outer block. I spend plenty of time in non curly brace languages, but I find that the lack of an explicit end of block market in Python makes it harder for me to read. I can't scan the code visually nearly as early as I can in other languages. The form of the end m
Re: (Score:2)
Hmm, no, that's not what I said (or meant). Rather, when I go to a language like C++, the braces feel entirely superfluous, which begs the question: why are they here? Even with the IDE doing a lot of the work to keep them in sync with the indentation (which in itself is pretty telling), they still feel like completely unnecessary noise.
All languages have things you do that aren't really for your benefit as the developer and are there because the language or other tools need them, and that's a source of fri
Re: (Score:2)
*sigh*, no, it's not that at all. I'll assume you're trolling, but for the sake of the discussion: yes, obviously the compiler requires them, but that's purely because that's the way the language was designed. My point - which I'm pretty sure you got - was that if you're coming from a language like Python, you tend to wonder why a language like C++ requires them. As in, you don't see the point of them, that's all.
Re: (Score:2)
Python is actually full of limitations imposed by the indentation nonsense. Those limitations show up when a programmer goes beyond simple programs and wants to do more advanced things in the language. For example, lambdas are limited to one expression in Python. There's literally no reason other than because the i
Re: (Score:2)
People that think braces and statement terminators are problematic have never used a good auto-formatter.
Hmm, that seems like a pretty sweeping generalization, no? I've used every major IDE out there too, and I don't dev in just Python. As noted earlier, my dislike of braces is that they are noise, and more subtly, they introduce this problem where the block structure indicator that actually matters to the tool (the braces) is a weaker indicator than the one people naturally see more strongly (the indentation - the "shape" of the code is a stronger indicator of structure than some relatively small symbols).
I'm
Re: (Score:2)
C'mon, go re-read what I said - not once did I suggest that "everyone" (or anything close to that) was having problems with those things, only pointing out that that is a class of problems that can arise due to having both braces and indentation (which is significant on some level to the human but not the language). Unlike many of the anti-Python posts, I didn't make any claim that this was a major source of bugs, a huge issue, etc.
Anyway, looks like my posting limit is just about up with this story, not su
Re: (Score:2)
Re: (Score:2)
"Curly" braces to denote blocks of code and semi colons to denote end of statement are the marks of a sane language.
I fail to see why mandatory ";}" is sane.
Re: (Score:2)
;} is very clear.
guarantee end all the previous parsing and drop the local frame.
Computers are mind numbingly stupid. We have syntax to overcome how we deal with that. In this case we are covering two vastly different concepts with absolute precision of syntax.
Re: (Score:2)
Oh my. You claim that semicolon as terminator is dramatically easier to parse than semicolon as separator, or dramatically more precise. Please never write a parser that I might have to use.
Re: (Score:2)
I don't know about everyone else, but I find it *immensely* helpful to write debugging statements without indentation. This makes it so that they stand out from the normal statements among which the debugging statements are inserted. This is the reason I won't even consider using Python.
Just stick "# XXX" comments around your debug code. Many editors automatically highlight XXX so prominently that it's just as easy to spot as unindented code.
Now, all you Python-indentation-style lovers, consider how you would code this kind of Go initializer: := [][]int{{1,2,3},{4,5,6}}
arr
(This declares the variable 'arr' as a slice of slices of ints and initializes the variable.)
You mean, like:
arr = [[1,2,3][4,5,6]]
What's the problem?
Re: (Score:2)
GoToo? GoTwo?
have (Score:4, Funny)
Love the name. Especially I love trying to find any information on this bloody language:
* have tutorial
* have language tutorial
* have programming language tutorial
* have to go transpiler
* how to program in have
* have wiki
Next up, a webserver written in have called "the", a debugger for the language called "how", and IDE for it named "it" -- "debugging the with how in it".
Re: (Score:2)
Have Blue [wikipedia.org] was actually the code name for the Stealth Fighter project. Maybe he wants to sneak in under the radar.
Re: (Score:2)
Re: (Score:1)
have to go transpiler
This is just a step above "mommy i have to go doody".
Have? (Score:2)
I would named it GOTO.
Re: Have? (Score:2)
Come on, everybody knows the ultimate language needs a COME FROM statement.
One sure sign your language is successfu (Score:3)
"One sure sign your language is successful: When people build other languages that transpile into it."
Funny, I interpret that more as "your language is fundamentally flawed but you have a captive audience forced to write in it so they try to make the best of it."
bad substrate, adds nothing (Score:3)
I can't figure out why you would want to build anything on top of Go; the language has several intrinsic design shortcomings and limitations that are reflected in its runtime.
Between C++, C#, and Swift, I see little reason for another compiled language (add Python and JavaScript for interpreted languges). If you really want something more obscure and less associated with big companies, add D and Ruby to the list.
Re: (Score:2)
As far as I can tell, Have has exactly the same shortcomings as Go, but with a slightly different syntax. I don't care about indentation vs block markers (I prefer begin ... end, but there's enough vitriol already), but all Have does is put struct functions inside the struct instead of outside (with the ugly func (s *struct) syntax). Go's approach has an advantage, Have's too, but it's all very cosmetic.
The Go language is indeed limited: I see it as an odd mixture between Java and C, a Java-- if you want: n
Re: (Score:2)
Yes, Go's gimmick is multithreading, and it is indeed better than in C. But I think threading is also Go's greatest weakness: Go's CSP-based model was obsolete from the start; better approaches have been around for years.
python-like syntax complicates error detection. (Score:2)
"Transpile"? (Score:1)
Re: (Score:2)