IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Bertrand Meyer on supporting Eiffel in dot-nyet
[link|http://www.sdmagazine.com/documents/s=7134/sdm0205j/0205j.htm|May SD]

I'm still skeptical on how great (or useful) the CLR's cross-language ability is; for example, adding generics seems to be impossible (so STL for managed C++, no generics for .nyet Eiffel), and I wonder how well more dynamic languages than the ones Meyer uses (FORTRAN, C++, Eiffel) could be shoe-horned into the CLR.

Tony
Who isn't worrying much about this stuff since he has to deal with such high level issues as light curtains and wimpy mechanical parts
New ..and a great big *da!* on *.nyet*, Tovarisch!____[cackle]
New Re: Bertrand Meyer on supporting Eiffel in dot-nyet
Well, since the other two parts aren't available, yet, I probably should hold off and not say anything until I've read them all, but at this point, it appears to be mostly a fluff piece.

On one side, he extols how great it is that multiple languages can be run on the CLR, and that it's not that big a deal that there's mapping involved, as it allows languages to work within that framework. Then, he runs off on C++, stating that there were tons of changes to it, but that it should be that way, because C++ is based on C which is three decades (or whatever) old and isn't a modern language, anyway (so it should be updated, to move to people to C#).

Whatever.

Basically, my impression is that, since he thinks he can get his language of choice (and I'm not saying it's a bad language) to work well with it, it sets it up so that his language can be made more popular (since it runs on .NET, now). If another language takes it in the shorts because it doesn't map well...tough, that probably means it's not a "modern" enough language and should be changed, anyway.

I think he's got language envy.

I especially loved his example of ASP.NET with embedded C# calling Eiffel. He seemed to be excited that you didn't know that Eiffel was getting called. I call it a maintenance nightmare, myself.

Just my $0.02.

Dan Shellman
New I am curious about the second article though
I want to see how he got his language of choice to run well on it. Are there somewhat generic techiques which apply and could apply to other languages?

I am not hopeful, but I am interested.

Otherwise it really does seem to me to limit what interesting language features can be considered.

Cheers,
Ben
"... I couldn't see how anyone could be educated by this self-propagating system in which people pass exams, teach others to pass exams, but nobody knows anything."
--Richard Feynman
New CLR is Turing Complete
....so it can run probably any language. Whether the result is fast or has a simple interpreter is another matter.

I think where MS blew it is not directly supporting multiple inheritance. They could use it as a bragging point against Java. (Whether it makes any real difference or not is another matter.)

Sometimes I am disappinted when MS fails to act like MS for some odd reason. It is almost like the sun coming up in the west.


________________
oop.ismad.com
Expand Edited by tablizer May 14, 2002, 12:47:19 AM EDT
New That wasn't my point
Of course anything can run in .NET, somehow. That is different from running fast and integrating well into it.

He is happy because Eiffel runs fast on .NET and integrates well into it. I am interested in how he accomplished those things, and what important things he found out while doing so.

Cheers,
Ben
"... I couldn't see how anyone could be educated by this self-propagating system in which people pass exams, teach others to pass exams, but nobody knows anything."
--Richard Feynman
New And because C# is so oriented towards strong typing, etc
(Note for Ben: since I get the dead tree version of Software Development, I will be reminded of the series when it arrives and will post the link to it in this forum. I'll be interested in hearing your commments.)

I wonder how well dynamic &/or untyped languages will integrate in and how well (if at all) their classes can be shared between them and the "normal" CLR languages. For example, I'm working on Python code to dynamically create class data members (which can be strings, ints, and doubles right now) based on the contents of a MetaKit database file.

Basically, it's a class to store and edit configuration information. And, the editing will be is automated, too -- the Python code creates Tkinter dialogs based on database information. It's very convenient to be able to add more config data simply by adding to a database; my previous approach in C++ wasn't even close in convenience (required adding code in five different places, plus modifying the dialog screen).

My earlier Python approach was to load in the config information (strings, ints, and doubles) from an INI file into a Python dictionary, which can handle heterogenous types. C++ can't do this due to strong typing. The Python dictionary approach is workable, but the new approach is more convenient.

I also heavily rely on dynamically importing Python modules (specified by the configuration database) to allow easy customization by our customers (or by us for our customers).

In summary, I've found Python's dynamic abilities very useful, know that I couldn't do such stuff in C++, and doubt that I could do it (or at least do it conveniently) in either Java or C#.

I wonder how hard it would be to fully integrate a dynamic, untyped language into dot nyet, being able to share classes, make other languages dynamic, etc. I suspect it'd be pretty hard -- but I don't care enough to spend the time. I ain't going to dot nyet, and neither is my employer.

Tony
New Re: I am curious about the second article though
From what I understand from the various reading that I've done on .NET (and I'm not claiming to be an expert, by any means) is that within the actual compiler for your langauge of choice, everything is pretty much open. Since the "byte" code is "complete," it should be able to handle pretty much any langauge. Of course, that's assuming that some sort of mapping by the compiler to the "byte" code exists. For some dynamic languages, they may get neutered in order to fit properly (like dyanamically redefining the class interface, or whatever). That's part one. Can it be translated such that it can be run by the CLR.

The next issue has to do whether it can be accessed externally by other .NET components. This includes features like inheriting from langauge A to language B across assemblies. This is where languages basically get neutered to be seen the same way. There's not a whole lot of difference here between the way COM works (it's a C-like interface). That's not to say that it's not an improvement over COM, because it is (you can't inherit a COM interface, for example). But, it does mean that langauges won't be able to be seen external the same way they are seen internally.

So, from my perspective, the whole multiple language thing is cool, but slightly misleading. First, there's a mapping of your language to run on the CLR (internal view). This removes *some* functionality from most all languages (or, at least, some modifications). This is *not* the same as the difference between managed and unmanaged C++, though (unmanaged C++ is like using JNI in java....it gets compiled to the machine and runs outside of the CLR). Second, there's the external referencing of assemblies (components, etc. get compiled into an assembly, similar to a DLL). There's nothing horribly new here, other than the improvement of that interface (i.e. inheritance). There's still the issue, for example, of case-sensitivity between languages.

Bottom line: it's definitely an improvement over COM/COM+/DCOM/etc., but it's not earth shattering. If I were MS, I'd have done the same thing (assuming I was smart enough to come up with the idea in the first place, which is debatable). On the one hand, it allows them to create a common view of their OS. On the other hand, it allows them to compete against Java on the server side (and other server-side development languages, too, such as PHP, Zope, ColdFusion, etc.).

I consider it a brilliant move on their part (under the circumstances), but it's not as *cool* once you get into the details and discover that, by "partnering" your language with MS's .NET to allow you to run there, you're really not getting what you think. It's that whole partnering with MS thing, again.

Dan Shellman
New My issue is tony's
I like dynamic programming techniques.

.NET doesn't (from what I have read) seem very kind to that. Will I be able to transparently call across the CLR to a class that was autocreated on demand? Somehow I doubt it.

I am also watching to see how the [link|http://www.parrotcode.org/|Parrot] project does. You can think of it as a similar idea to the CLR except targeted at dynamic scripting languages. (Its performance on static ones will be worse. Initial toy benchmarks suggest that it will let the dynamic ones run much faster than they currently do though.)

Cheers,
Ben
"... I couldn't see how anyone could be educated by this self-propagating system in which people pass exams, teach others to pass exams, but nobody knows anything."
--Richard Feynman
New Ditto
David Simmons has been banging around the Smalltalk world producing very clever stuff (although he totally lacks any sense of business as far as I can tell - too easily distracted by tasty hacks). Nonetheless, he has done a scripting language called SmallScript that lives on top of .NET as well as on his own VM (which he calls the Agents Objects System AOS).

A couple quotes from him on his .NET implementation experience are:

[link|http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/33895|http://blade.nagaok...y-talk/33895]

[link|http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-February/009189.html|http://lists.squeak.../009189.html]

So its not awful - but its not great either. It *is* better than the jvm.
The average hunter gatherer works 20 hours a week.
The average farmer works 40 hours a week.
The average programmer works 60 hours a week.
What the hell are we thinking?
Expand Edited by tuberculosis Aug. 21, 2007, 06:30:31 AM EDT
New Dynamic languages and the CLR
[link|http://www.javalobby.org/pdf/clr.pdf|CLR Cross Language shortcomings] this article contains rebuttal comments from the Microsoft Program Manager for the CLR, so the article is quite balanced. At the end there is a page relating specifically to Eiffel.

The bottom line is that even Microsoft [link|http://research.microsoft.com/~emeijer/Papers/CLR.pdf|admit] "It would be unfair to state that the CLI as it is now, is already the perfect multi-language platform. It currently has good support for imperative (COBOL, C, Pascal, Fortran) and statically typed OO languages (such as C#, Eiffel, Oberon, Component Pascal). Microsoft continues to work with language implementers and researchers to improve support for languages in nonstandard paradigms"

It is clear that dynamic languages will suffer under .NET.

One last quote from the article regarding Python "ActiveState reported their experience implementing Python for .NET (with funding and help from Microsoft): [link|http://www.activestate.com/Initiatives/NET/Research.html|http://www.activest...esearch.html]. The paper even reveals some cross-languages problems that I wasn t aware. They conclude the project was a success because they could get Python working on .NET; but this is with severe problems of interoperability and performance. The speed of the current system is so low as to render the current implementation useless for anything beyond demonstration purposes. Some issues are related to the immaturity of the current Python for .NET system, but many others are limitations of the CLR. Of course, Python is not a close relative to C#. This might change, as ActiveState mentions the possibility to introduce changes such as static type declarations I sincerely hope this is not the first step to make Python yet another C# skin ."
Expand Edited by bluke May 20, 2002, 10:25:05 AM EDT
New Static languages...
Just for reference, there's a [link|http://www2.fit.qut.edu.au/CompSci/PLAS//ComponentPascal/virtual_machines.pdf|Comparison of VM's] from the Gardens Point Component Pascal group which tried to implement them in both JVM and CLI. (Granted that Object Pascal is about as static as they come, but the article may still be of interest).
New Thank you all
Between the 3 of you, you did give some evidence that Microsoft at least has worried about dynamic languages (even if it thinks they should be second class citizens).

However I am going to wait to see if their promises of doing something about it, or the reality of languages that try to use it, pan out. You see I have a little trust issue that stuff from Redmond doesn't tend to work properly, and the desires of anyone other than their steamroller get ignored...

Cheers,
Ben
"... I couldn't see how anyone could be educated by this self-propagating system in which people pass exams, teach others to pass exams, but nobody knows anything."
--Richard Feynman
New Yeah, don't think much of Bertie's work
He's a strong typing zealot - among the worst of the bunch. His languages are as fun as root canals.
The average hunter gatherer works 20 hours a week.
The average farmer works 40 hours a week.
The average programmer works 60 hours a week.
What the hell are we thinking?
Expand Edited by tuberculosis Aug. 21, 2007, 06:30:33 AM EDT
New Some people like that stuff (like maybe CRC)
________________
oop.ismad.com
New dot-nyet : I've been waiting for it :)
New II - Achieving Interoperatibility
Here's part two of the series: [link|http://www.sdmagazine.com/documents/s=7147/sdm0206g/0206g.htm|June SD].
New Interesting
So that .NET doesn't support multiple inheritance is OK if you can find a way to have the structure of that multiple inheritance visible within .NET (albeit with interfaces and not classes).

That .NET doesn't support generic programming is OK because your language can still support it in the compiler, even though no other language can notice or interoperate with that feature.

This is an understandable, even an acceptable, compromise within the limits of what .NET really aims to do. It doesn't match the hype, but then what from Microsoft does?

However I am still concerned that these second class concepts (ones which can be represented somehow but in a distorted way) and third class concepts (my compiler implemented it) will be devalued in the .NET world. Sure, you can do that, but the system subtly discourages you from doing it.

I am reminded of a quote from Paul Graham in [link|http://www.paulgraham.com/avg.html|Beating the Averages] that, When you're writing desktop software, there's a strong bias toward writing applications in the same language as the operating system. Similarly when writing .NET software, there is a strong bias towards writing applications in a language that dovetails with .NET's view of the universe.

Meyer's limited successes in sneaking in features that .NET doesn't understand don't comfort me. Perhaps I am just being paranoid though. (Microsoft will do that to one...)

Cheers,
Ben
"... I couldn't see how anyone could be educated by this self-propagating system in which people pass exams, teach others to pass exams, but nobody knows anything."
--Richard Feynman
     Bertrand Meyer on supporting Eiffel in dot-nyet - (tonytib) - (17)
         ..and a great big *da!* on *.nyet*, Tovarisch!____[cackle] -NT - (Ashton)
         Re: Bertrand Meyer on supporting Eiffel in dot-nyet - (dshellman) - (12)
             I am curious about the second article though - (ben_tilly) - (9)
                 CLR is Turing Complete - (tablizer) - (2)
                     That wasn't my point - (ben_tilly) - (1)
                         And because C# is so oriented towards strong typing, etc - (tonytib)
                 Re: I am curious about the second article though - (dshellman) - (5)
                     My issue is tony's - (ben_tilly) - (4)
                         Ditto - (tuberculosis)
                         Dynamic languages and the CLR - (bluke) - (2)
                             Static languages... - (ChrisR)
                             Thank you all - (ben_tilly)
             Yeah, don't think much of Bertie's work - (tuberculosis) - (1)
                 Some people like that stuff (like maybe CRC) -NT - (tablizer)
         dot-nyet : I've been waiting for it :) -NT - (Arkadiy)
         II - Achieving Interoperatibility - (ChrisR) - (1)
             Interesting - (ben_tilly)

You entered famous last wordsburg territory thinking along that line.
75 ms