If all this already done then I can say that current compiler is "stupid".And I have nothing to add to this.
> I think that dart analyzer is not redundant but it MUST be just an useful tool that may be used in some situations.
Why?
> But compilers MUST have a very well organized static analyzer implementation inside itself.
Why?
> Compiler MUST have ability run it as good code analyzer.
Why?
> Compiler MUST NOT require from programmers to have any external tool for code analyzing and writing errorless code.
Why?
If the distinction between the 'dart' executable and 'dartanalyzer' executable is so troubling for you, just write yourself a tiny wrapper.
LT
>> This seems stupid to me as well.
You may say a little more to prove your words.In addition of just to praise Dart team.There I wrote why I have an opinion and I substantiate my words.You remind me a fanatic.I may say that I rude but I'm telling the truth.Need recognition of the weak force of the developers?I could give links to posts but I do not want to do that for fanatics.The weak force does not excuse the poor quality of development process.But you do not understand them. You will pray.And you shall cry, "Glory and praise to the development team"."Glory and praise that was bad before but now it is better. And we believe that one day will be fine. Maybe even after a few generations.".
>> Regarding your proposal, I trust the Dart team to chose the most efficient way:
>> - to offer performance
This proposal does not affect performance. If you can read in English.In Development (diagnostic) mode performance of how fastly VM execute first un-optimized line of your code is not critical.
>> - to offer the benefits of static types
It would be better and more help from your praises than to show your mind.What you want to argue by this "benefits of static types"?I don't understand.Or may be you think my proposal cancels and degrades them?Learn English or read carefully.
>>- to offer useful tools
Come and praise for everything.Useful tools just useful tools.It not improve language itself.Implementation of the language can not rely on useful tools.The language is totally dependent on the its implementator (compilator).
Proposal: In "checked" mode compiler MUST compile all code paths and analyze code statically.Like static compiler C#.
> Why Dart VM always compile code only lazy?
It's not always, it's by default. You can switch it off.
LT
>> It's not always, it's by default. You can switch it off.
I cannot find appropriate option
"Proposal: In "checked" mode compiler MUST compile all code paths and analyze code statically."
In short words this is equal: "Proposal: Add compiler option "compile_all".Or "early_compilation" or "static_compilation".
Microsoft® “Roslyn” CTPTraditionally, compilers are black boxes – source code goes in one end and object files or assemblies come out the other end. The Roslyn project changes that model by opening up the Visual Basic and C# compilers as APIs. These APIs allow tools and end-users to share in the wealth of information the compilers have about code. The Roslyn CTP previews the next generation of language object models for code generation, analysis, and refactoring, and the upcoming support for scripting and interactive use of VB and C#.What innovations we have in Dart?No, apart from the fact that this is a new Javascript.Is there is Dart next generation of language object models for code generation, analysis, and refactoring?Or may be be javascript is not good as web assembler?I think that Microsoft does not think so.Javascript can be adapted for almost anything.Typescript not really cuts out the unused parts of the code as it does Dart2JS.They have other trump cards in hand.First of all, they work on the language.Dart VM forked from V8.Dart was anonced in 2011 but I don't know when it will be started in reality (in 2010?).Dart VM is still not brought to mind. Echoes of Javascript VM?New syntax and object orientation this is good but it does not pull on next generation of language.
Maybe Google do not have the strength?--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
Dart2JS is really excellent work.But Dart VM is not so good.Or maybe I'm wrong and the Dart VM is superior than hydrogen + lithium?
>> I think you are misunderstanding how VM's optimizing compiler operates: you seem to assume that it has a statical type checking
I think as described here v8: a tale of two compilersHere your name referred...I know how JIT works.But Dart Editor analyzer works bad...And compiler cannot...
>> PS. Also, Andrew, when you send multiple emails to the same thread one after another you make it very hard to follow your thought. Consider waiting a little before sending and put all your thoughts that come into a single mail.
Thoughts come and go. It is impossible. I'm sorry.
>> PS. Also, Andrew, when you send multiple emails to the same thread one after another you make it very hard to follow your thought. Consider waiting a little before sending and put all your thoughts that come into a single mail.
Thoughts come and go. It is impossible. I'm sorry.
In checked mode, the VM does dynamic type checks, at runtime.The analyzer does static type analysis.These two modes are separate in Dart. Each generates errors that the other does not. For example, this program has a dynamic error, but no static errors:main() {var a = "not int";int b = a;}
var b:int
var b:intCould someone please explain why this is supposed to look more "dynamic"? There is a ton of statically-typed languages using this exact syntax, from Pascal or Ada to Scala or Kotlin.
var b:intCould someone please explain why this is supposed to look more "dynamic"? There is a ton of statically-typed languages using this exact syntax, from Pascal or Ada to Scala or Kotlin.Because this syntax encourages type notations on public api's and type inference for locals.
The C syntax encourages over annotation
Does it? How exactly?
K.
So this is your final point?
Proposal: In "checked" mode compiler MUST compile all code paths and analyze code statically.
Like static compiler C#.
On Tuesday, May 21, 2013 11:07:36 AM UTC+1, Ladislav Thon wrote:Does it? How exactly?The type syntax looks so C like - like static allocations.Javatards
will think 'var' is a duck type and they are getting some performance benefit from explicit type annotations:var x = 1;to:int i = 1;And even my favourite:final Point p = new Point(0,0);And I will have to read this rubbish - if the DartVM becomes a player on Chrome/Android.Hey - I'm done.K.
--
On Tue, May 21, 2013 at 3:30 AM, kc <kevin...@gmail.com> wrote:
On Tuesday, May 21, 2013 11:07:36 AM UTC+1, Ladislav Thon wrote:Does it? How exactly?The type syntax looks so C like - like static allocations.Javatards
Please do not use this terminology on the list. We have members from all kinds of language backgrounds and there's absolutely no reason to be rude and insulting.Thanks,Justin
Does it? How exactly?The type syntax looks so C like - like static allocations.Javatards
Please do not use this terminology on the list. We have members from all kinds of language backgrounds and there's absolutely no reason to be rude and insulting.
Apologies for that suffix - definitely did not mean to insult the learning disabled.On the other hand Java programmers. Are they such a limited bunch that they need familiar excessive Java boilerplate in order to adopt a new language. That's pretty insulting.
Does it? How exactly?The type syntax looks so C like - like static allocations.Javatards
Please do not use this terminology on the list. We have members from all kinds of language backgrounds and there's absolutely no reason to be rude and insulting.
Apologies for that suffix - definitely did not mean to insult the learning disabled.On the other hand Java programmers. Are they such a limited bunch that they need familiar excessive Java boilerplate in order to adopt a new language. That's pretty insulting.I have a really hard time restraining from writing a bunch of strong words here. Let me just say that there is a LOT of brilliant Java programmers and they don't really deserve your treatment. Can we just speak to the point?
The focus has to be on mobile and touch. Getting the fast VM into the browser - the oilpan project looks interesting.
IMO The Java syntax will be a net negative. You and the Dart team obviously disagree. Fair enough.
No syntax will please all users, unfortunately. I do think it's important to discuss syntax issues because usability is a key facet of a language, and syntax is the user interface. But it's a better use of all of our time if we focus that attention on things that are open to change, or where we have new data that hasn't been considered, or where we have empirical data to back up our assertions.
Dart has drifted quite a lot from the Java and Javascript/Typescript islands.
All the more surprising that the Dart team wants to keep "new" just for familiarity.
You would have to leave the C family for Haskell or projects like Elm to have something really different.
Dart is meant as part of the C family. Critisizing Dart for that is rather unfair.
This is great - the OO operator overloading shines:val v = Vector(1,2,3) + Vector(2,3,4);
This not so much:final Vector v = (new Vector(1,2,3)) + (new Vector(2,3,4));
Are you serious ?
All that post writing and you are happy with this ?
@Bob: that's exactly the point! In attempt to establish uniformity of object creation, language motivates programmer to introduce shortcuts.
Some will call it "vec", some - "vector", or "v", or "w"... And there was argument about grep? Grepping this would be difficult indeed :-)
Ok.
To quote you, I am done with it.
--
I see that my efforts failed hard.
I want to get rid of writing (IMO) useless keywords.
I do not want to modify Dart just to be like or different from another language.
What's the "new new etc' pattern?
IMO The Java syntax will be a net negative. You and the Dart team obviously disagree. Fair enough.
No syntax will please all users, unfortunately. I do think it's important to discuss syntax issues because usability is a key facet of a language, and syntax is the user interface.
For corners of the language that are baked and are in wide use, the barrier to change is very high.
--
On Tue, May 21, 2013 at 9:42 PM, Bob Nystrom <rnys...@google.com> wrote:
IMO The Java syntax will be a net negative. You and the Dart team obviously disagree. Fair enough.
No syntax will please all users, unfortunately. I do think it's important to discuss syntax issues because usability is a key facet of a language, and syntax is the user interface.
but I don't see that kind of elegance or expressiveness. I see some other niceties which did attract me to Dart, but I also see too many of comments like 'we did it to make Dart more familiar to C#/Java devs' - C# and Java devs are in general smart people and they will easily switch to something better. after all, many of them switched from C++ or VB.
For corners of the language that are baked and are in wide use, the barrier to change is very high.
I would argue that there are no corners of languages which are really in wide use. Dart is still in very early phase of adoption which can be witnessed by the number of questions on stackoverflow, which is < 5% of Node, or 1/3 of coffeescript. so now is the best time to change things, surely better than later.
That's my experience exactly with Python. And the reason why I've seen it rejected numerous times for large projects, and why I would reject it myself despite using it frequently for small projects. Javascript is similar - except that it couldn't be rejected so easily, until recently, for lack of alternatives.
About usability: the packaging system, analyzer, compilers, vm checked mode execution, etc (the "tooling") all have a bigger impact on usability than minor details of the syntax. This is where Dart separates itself from the pack and where it will succeed or fail.
Start factoring in too many
opinions, having too many consultations, and Dart would never be
finished. You'd also end up with a vanilla result where every strong
opinion is watered down and factored out in order to find consensus. Far
better to get it down quickly, warts, controversy, and all.
A V2.0
release is an opportunity to fold in new thoughts.
I don't see any problem with not consulting the community.
Great languages/frameworks are not designed by committees, they are designed by one person or a very small number of individuals with good opinions and good taste.
well, that would be too harsh - it is a decent language, although there are quite a few nice things in C# that Dart doesn't haveas I wrote before, most of the things that I personally miss can be added later, without braking compatibility with older versions, I can live with Dart 1.0 not having them :)
K.--
and there is a good reason why developers use Python or Lua or Ruby. Sure, C# got bigger, but I can't imagine a single competent C# dev which would like to return to time before generics, lambdas, anonymous classes, iterators/yield, Linq (not really a language feature, but it depends on iterators, lambdas, etc), automatic properties, type inference, extension methods and many other post C# 1.0 features.All these features significantly reduce the amount of code which needs to be written to get the same results.
If done right Dart it could become the defacto programming language. The language that people learn as their first language.
Dart's opportunity is to say 'what have we learned from the past 20 years - since JS/Java. What is required for the next 20 years.'A thoughtful synthesis. If done right Dart it could become the defacto programming language. The language that people learn as their first language.
On Tue, May 21, 2013 at 11:43 AM, kc <kevin...@gmail.com> wrote:
The focus has to be on mobile and touch. Getting the fast VM into the browser - the oilpan project looks interesting.We are super excited about oilpan.
If done right Dart it could become the defacto programming language. The language that people learn as their first language.
Except, that's not Dart's goal. They just want to be able to engineer bigger, more complex, web apps without the pain of javascript.
Some server side interest as well, I suppose to counter node.js.