New S# Language - Smalltalk for .Net
curador writes "In an interview with David Simmons, CTO of SmallScript Corp., we learned about a new .NET language about to debut...." I was surfing around and found this article and had not noticed it on /. yet so start your flame engines please!"
... hee2 is stuck under the bed.
How much does SmallScript have to pay Microsoft for the use of the # in S#? :)
-MT.
I never really "got" Smalltalk but the folks that do love it. One of the cool things about the .NET framework is that being language neutral, your choice of language doesn't have to be based on what toolkits and libraries and whatnot are available to it.
:)
So Smalltalk programmers, through S#, will be able to talk to DirectX or Gtk# or MySQL or whatever without someone having to come up with bindings or libraries or whatever they might otherwise need. Scary.
- Steve
It's not the language neutrality that's required it's the interfaces that need opening.
/net/tcp/$n/ctl
TK & Plan9 get this right by using character and not binary interfaces [Unicode in Plan9s case].
In Plan 9's once you've written a program and exposed it in the Plan 9 way you don't even need libraries & whatnot.
take a look at my IRC bot written in shell script
http://www.proweb.co.uk/~matt/chugly.rc
making a network connection, pah, who needs a socket library
echo 'connect slashdot.org!80' >
Writing a user level file system to implement such things is a bit more complicated but again, once written *any* program can utilise them with the simple commands we all know and love : echo cat grep ls awk etc. etc.
Here's one I wrote to do google searches
Now every program on my system can do a google search using simple file operations. Even programs compiled *before* I wrote mine, such as awk.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Logo.net
1. Bad signature
2. ?????
3. Profit
Java.NET already exists, under the beautiful name of C#
"What you 'seek' is what you get!"
http://primates.helixcode.com/~miguel/bongo-bong.h tml
Miguel argues that piping is not a very good compenent model to build applications or systems.
In short:
Binary interfaces can have event interfaces.
Binary interfaces allow for strongly typed return codes, or can throw exceptions.
How do you do things like this with text/piping?
the better I was refering to in my post was speciifally that a new VM is required. Plan9 talks via a published protocol [9p] implementable on any platform. I guess .NET is potentially available everywhere but we know it won't be.
/dev/mouse
/dev/audio
/dev/audio /n/machine_audio /n/machine_audio
You are right that some knowledge is required up front to know what commands to issue.
One of the main advatages is the standardisation.
I presume you already know how to use cat, ls, grep, echo, > | & friends.
The use of familiair tools and a textual interface is to go with the "everything is a file" paradigm.
what to know where the mouse pointer is
%cat
play some audio
cat audio.pcm >
want to play it on another machine's soundcard ?
import -a machine
cat audio.pcm >
(permissions permitting of course)
Plan 9 has more to offer than just a few file semantics.
If you really are interested than a set of papers & all the manual pages are available. Installation is fairly straight-forward [hardware permitting] and there is a VMWare image also available.
Plan 9 isn't trying to be on everyone's desktop, it's more a market of ideas.
http://plan9.bell-labs.com/plan9
I can particularly recommend the plumber. File associations are pretty limiting. Imagine a system where regular expressions and a few shell scripts do the work. I wrote a class browser for my PHP code so that right clicking $foo->bar(); would bring up the definition of ->bar from my PHP source code [which sits on a FreeBSD machine] and it took me about 15 minutes.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Seems like an ideological shift to me, more closely related to C++ than to Smalltalk
"player 4 hit player 1 with 0 stroms"
"player 4 hit player 1 with 0 stroms"
Why wouldn't anyone write a device driver in VB? Maybe not in VB 6.0 but the whole idea of .net is that no matter what language you use, VB.net, C#, S#.... It all compiles to the same M$ Intermediary code. And since this is a managed code and not native code it takes a performance hit (Microsoft really plays this down, trust me, I've asked all the questions and gotten not a single strait answer). What you should have said is that no one is going to write a device driver for the .net framework period. The .net framework is primarily for web services. It has other advantages and features but none of them include high-performance mission critical applications and drivers. That's for ANSI C and other languages that compile to native binaries.
Good memory management skills and code optimization skills will never be replaced by fancy frameworks. What the .net framework does is put training wheels on programming and lowers the overall quality of code produced as well as the median skill and knowledge of the programmer pool.
J# is little more than a tool to convert existing J++ apps (read JDK 1.1 plus Microsoft alterations and libraries) to .NET.
.Net is.
C# is closer to being the language part of the Java clone that
Well said. Applies equally to J2EE. I asked some techies a while ago how cant ANSI C/C++ code, if programmed skillfully, be better than J2EE. Use standard portable libs and you have portable code.
However J2EE is based on a huge pool of Compsci grads weaned on Java in their second year. J2EE is also quite mature and compliant with other companies and plays well with opensourced projects.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Oh yeah, sure, you've really eliminated the possibility of error. Why not add every method to the 'null' object while you're about it, then your program could _never_ have null-related bugs!
-- Ed Avis ed@membled.com
Miguel argues that piping is not a very good compenent model to build applications or systems.
Miguel or Dennis Ritchie ?
I think Dennis gets my vote
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Really? Perhaps you'd like to talk to Linus about why C++ can't be used to develop the linux kernel and why it (and all driver code) must be written in C. But obviously people who write operating systems arn't the best and brightest , no , they'd be the people that write yet-another-dbms-frontend. Right?
The 9p protocol is designed to be simple and robust. No piping required and all the things mentioned are possible.
:
/dev/mouse
/dev/mouse
You did forget something
Binary interfaces cannot be [easily] interpreted by humans.
Which is a curse when you are debugging.
The only real difference between the binary and textual is that binary encoding is unreadable, eveything else is implementation dependent. Binary interfaces in and of themselves don't guarantee events or exceptions.
Which would you rather have
%cat
801 600
or
%cat
^C^U ^BZ
[that was the best I could manage for the binary output i took it from what vi reported, in hex it would be 0x0321 0x0258 and ASCII 0x03, 0x02 & 0x21 are somewhat difficult to represent in HTML]
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter