www.digitalmars.com         C & C++   DMDScript  

D - need for network protocols

reply "Tim Chemaly" <tchemaly ing.sun.ac.za> writes:
Hi
I really like the idea of D but it does have one shortcoming...it fails to
mention any built support for network protocols such as TCP,UDP,FTPHTTP,
etc...
C++ is a real pain when it comes to network support which is probably one
more reason why developers are using Java more and more (since it does
provide support for network protocols). Nowdays it so big that it is
virtually unthinkable to write server side programs without some form of
networking included.



Regards

***********************************************

   Tim Chemaly
    Internet Application Developer
    Website: www.cypherstudio.com
    Cell: 0827290667
    Email: tchemaly ing.sun.ac.za

***********************************************
Aug 22 2001
parent reply Russell Bornschlegel <kaleja estarcion.com> writes:
Tim Chemaly wrote:
 I really like the idea of D but it does have one shortcoming...it fails to
 mention any built support for network protocols such as TCP,UDP,FTPHTTP,
 etc...
 C++ is a real pain when it comes to network support which is probably one
 more reason why developers are using Java more and more (since it does
 provide support for network protocols). Nowdays it so big that it is
 virtually unthinkable to write server side programs without some form of
 networking included.
That sounds like a library thing, not a language thing. Yes, D should have a fairly high level networking library available. Perhaps I'll go write one in C in my Copious Spare Time. -Russell B
Aug 22 2001
parent reply "Johan Bryssling" <johan.bryssling micronet.se> writes:
I MUST COMMENT THIS!!

 I really like the idea of D but it does have one shortcoming...it fails to
 mention any built support for network protocols such as TCP,UDP,FTPHTTP,
 etc...
C has support for TCP, and UDP . HTTP and FTP are a two protocols that uses the protocol TCP. People are using java because they are lazy. But someone has to do the work behind it all or what do you think the language java was made of? =)
C++ is a real pain when it comes to network support which is probably one
  more reason why developers are using Java more and more (since it does
  provide support for network protocols).
I dont think "C++ problem" are a problem.. However, you might do some stuff yourself (darn!!), like wrapping the socket funktions into a class. When you are on your way, its easy. Creating a class looking like the java class is easy because the "java engine", the standard java classes, are linked to the current operative system's libraries (that is made in C!). So you might use the stile java classes have as inspiration. ;-) When you have your nifty little socket class you could make a HTTP class or FTP class to implement the protocol (you need a protocol specification first downloaded from a RFC -site.) If you follow the specification you could now create a webserver, FTP server/ FTP clienten with your classes... Hurray!!!! It's very fun to do stuff yourself.. Ask them you creates D.. A whole new compiler.. I can imagine that's both crazy and very funny, . The pain is to find the information so my humble suggestion is to start looking in the man -pages on a linux or sun machine. (Even microsoft have documentation... ) command: man 2 socket The usage of sockets in windows and unix are VERY similar, (but you have to ask the windows system about a socket first, it exists more info about that in the microsoft knowledge base..) And it exists implementations for FTP , HTTP and SSL ... etc.. for C and C++, more or less free.. Just look a bit harder and you will find.. =) Big *sigh* on you lazy programmers.. ;-) Regards, Johan Bryssling , Software engineer, Micronet
Aug 23 2001
parent reply Jan Knepper <jan smartsoft.cc> writes:
 I really like the idea of D but it does have one shortcoming...it fails to
 mention any built support for network protocols such as TCP,UDP,FTPHTTP,
 etc...
C has support for TCP, and UDP . HTTP and FTP are a two protocols that uses the protocol TCP. People are using java because they are lazy. But someone has to do the work behind it all or what do you think the language java was made of? =)
I do not think any :"language" as "language" as support for any type of network or network protocols... AFAIK support for "networking" as well as support for "operating systems" are brought to the "language" through a (function/class/whatever) library. If someone does not like the way something works through a library... Get a different library... Not a different language! <g> Jan
Aug 23 2001
next sibling parent reply "Bradeeoh" <bradeeoh crosswinds.net> writes:
 I do not think any :"language" as "language" as support for any type of
network
 or network protocols... AFAIK support for "networking" as well as support
for
 "operating systems" are brought to the "language" through a
 (function/class/whatever) library.

 If someone does not like the way something works through a library... Get
a
 different library... Not a different language! <g>

 Jan
I agree on most levels, with reservations. The "language" should not neccesarily support these things. Even in Java, whether the support is built directly into the language or rather relies on the Java standard API is a little gray. I think the point is, however, that the Java standard API provides support for all these things and more. No toolkit or VM can be officially called a "Java" toolkit or VM unless it supports networking et. al exactly as specificed in the Java API. I know this is stating a whole lot of obvious things, but the Java API is it's standard set of libraries. And Java is so popular BECAUSE it has such large numbers of standardized libraries that are (loosely) guaranteed to work, no matter the platform. With C/C++, libraries exist for most everything Java API libraries do, but there is no ONE library that does it all in the standardized way. To come about a LONG full circle, I think what our friend may have originally intended to say is the D needs to have a networking library (and other libraries) that are A - high level enough and B - standardized. I agree with B completely and A for the most part. The answer to this issue given by Walter (as he's primarily concerned with the compiler) and others is that D can just wrap around all the C libraries that already exist. But this does very little than WORSEN D's stance on the issue of standardized libraries. :) A point that could use some attention, but perhaps not at this stage. Give us a solid compiler, let us start using the language for basic things, then Walter, if he see's fit, can CONTINUE to embarass C/C++ but making D's "stdlib" module be simple and fully featured. :) -Brady
Aug 23 2001
next sibling parent Russell Bornschlegel <kaleja estarcion.com> writes:
Bradeeoh wrote:
 
 To come about a LONG full circle, I think what our friend may have
 originally intended to say is the D needs to have a networking library (and
 other libraries) that are A - high level enough and B - standardized.
 
 I agree with B completely and A for the most part.
The first high level network library to appear in D and be reasonably useful may well become D's standard. I'd be willing to do some work on wrapping C/Winsock/Win32 into some very basic networking libraries for D (probably at a slightly higher level than the traditional sockets interface), but this wouldn't be an extremely high performance library -- probably fine for client-side applications, but not busy servers. I'm not a big web goober, so I probably wouldn't do http classes or anything. I'd release source under very free terms -- something like what I did for my Ballisti-K language: http://www.estarcion.com/exrecto/ballistik.html As an aside, the Ballisti-K spec should give y'all a really good indicator of why you shouldn't pay any attention to my thoughts on language design. -RB
Aug 24 2001
prev sibling parent Jan Knepper <jan smartsoft.cc> writes:
 I agree on most levels, with reservations.  The "language" should not
 neccesarily support these things.  Even in Java, whether the support is
 built directly into the language or rather relies on the Java standard API
 is a little gray.
Why? Walter wrote a Java compiler and I don't think he ever included any networking into the compiler...
 I think the point is, however, that the Java standard API
 provides support for all these things and more.  No toolkit or VM can be
 officially called a "Java" toolkit or VM unless it supports networking et.
 al exactly as specificed in the Java API.
Which is (was) the great thing about Java. Currently (class) libraries for D are in the makening, but it will take a while before they are ready... Jan
Aug 24 2001
prev sibling next sibling parent "Rajiv Bhagwat" <dataflow vsnl.com> writes:
Jan Knepper <jan smartsoft.cc> wrote in message
news:3B8517D1.3968EEC5 smartsoft.cc...
 I really like the idea of D but it does have one shortcoming...it
fails to
 mention any built support for network protocols such as
TCP,UDP,FTPHTTP,
 etc...
C has support for TCP, and UDP . HTTP and FTP are a two protocols that
uses
 the protocol TCP. People are using java because they are lazy. But
someone
 has to do the work behind it all or what do you think the language java
was
 made of? =)
I do not think any :"language" as "language" as support for any type of
network
 or network protocols... AFAIK support for "networking" as well as support
for
 "operating systems" are brought to the "language" through a
 (function/class/whatever) library.

 If someone does not like the way something works through a library... Get
a
 different library... Not a different language! <g>

 Jan
Not true. Look at 'Rebol'. It has inbuilt support for all the protocols, but then it is a language for writing net based apps. For a general purpose language like 'D', such things belong to a library, (or libraries, as you hint), no doubt. By the way, the multitude of data types supported by Rebol are worth a look. www.rebol.com and www.rebol.org BTW, it now appears that they have gone commercial, so language discussions would be buried somewhere on the site... -- Rajiv
Aug 24 2001
prev sibling parent "Johan Bryssling" <johan.bryssling micronet.se> writes:
"Jan Knepper" <jan smartsoft.cc> wrote in message
news:3B8517D1.3968EEC5 smartsoft.cc...
 I really like the idea of D but it does have one shortcoming...it
fails to
 mention any built support for network protocols such as
TCP,UDP,FTPHTTP,
 etc...
C has support for TCP, and UDP . HTTP and FTP are a two protocols that
uses
 the protocol TCP. People are using java because they are lazy. But
someone
 has to do the work behind it all or what do you think the language java
was
 made of? =)
I do not think any :"language" as "language" as support for any type of
network
 or network protocols... AFAIK support for "networking" as well as support
for
 "operating systems" are brought to the "language" through a
 (function/class/whatever) library.

 If someone does not like the way something works through a library... Get
a
 different library... Not a different language! <g>

 Jan
Yes, that was the thing I meant.. actually.,. ;-) I should have written "C has libraries that support the TCP protocol".. not "C supports TCP protocol". I would be embarrasing to switch language to achive network-support.. *LAUGHT* Java is just a language that wrapps old C-functions and makes the execution slower in progress.. (thanks you SUN, I can know see the graphics paint slowly and flicker when I use your graphiclibrary : "Swing" on my 800 MHZ, 256 megabyte ram, Pentium 3, Thank you SUN youre the greatest..). (Have they fixed this in JDK 1.4? I use Erlang... now-a-days.. so I cant tell .. ;-) ) The fun thing is that you could make C++ easy to understand and use, but who the hell have the guts and time for it. I guess we all just sit backs and waits for a nice and gentle hacker with no life to create it.. and give it away freely. (I will send him a gold medal as "thank you" for his effort.) ... or wait for D to get completed.. =) Regards Johan Bryssling, Software Engineer, Micronet ps. Sorry for my sarcasm but I heard a lot in this buisness that makes me laught my head off.
Aug 24 2001