www.digitalmars.com         C & C++   DMDScript  

D - HELLO D Fans !

	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

A Big Hello to all D Fans,

I work at Kyocera Wireless India , Bangalore..and from the time I =
started to work here..I felt a need for language that is better that C =
and not as complicated as C++.
So I started to think about a languge called C+ (between C and C++). I =
have designed half of it and  when I came across D I was pleasantly =
surprised to see that there is a great deal of similarity between D and =
C+. Since C+ is not going to come through here..(Its strategically  =
unimportant to use a new language) , thought I will give the D  =
community some of the ideas I had for C+. Some of the ideas are based on =
the need in the Mobile Software World. But still a good deal of new =
ideas can be reused.  D is really good but has not got the recognition =
due to it. Why it so,  we need to analyse and see what can be done about =
it. I think I will give the ideas in installments..so as not to =
overwhelm the news server with replies...:)

Design of the C+ Programming Language
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

The design of C+ is based on the philosophy that a language must enable =
the programmer to program at the
highest level of abstraction suitable for the system. It uses C as a =
base language and adds constructs that=20
enable design at an abstract level.
C is a low-level programming language and is not suitable for all types =
of systems. Indeed the lack of important
features in C is considered it strength. But in reality programmers =
always tend to unconsciously program at the=20
level of the problem domain. We see in the use of typedefs , naming =
convention, abstract data types ,  static=20
and function pointers for data hiding and inheritance , libraries for =
concurrency , code reuse and so on. It is best=20
that a language provides these features rather that allowing the =
programmers to build them in a hundred unrelated ways.
This least common denominator approach to language design may seem to =
take away the freedom of the programmer, but it
is not. Indeed it gives a higher freedom of thinking at an abstract =
level rather than worrying about the details of
storage and representation.=20

C+ is a dialect of C with extensions for building large fault-tolerant =
systems.The low level features of C are retained=20
in C+.This is necessary for the most demanding system programming tasks.
C+ is new programming language with language support for persistence and =
concurrency. It has a mixed heritage :=20

1)  Abstract data type concept from Alef.
2)  Operator overloading from C++.
3)  Reference types from  Java.
4)  Concurrency concepts from Alef
5)  Exception handling from C++ and Alef and CLU.
6)  boolean data types from Java.
7)  generic types from C++.
8)  Construction and Destruction from C++.
9)  Expression syntax from C.
10) Persistence from Java.

C+ =3D C + abstraction + concurrency + exceptions + persistence + =
safety;

The first thing to do is to introduce a boolean type :
Java's ease of reading is mainly due to it..We should eliminate the  use =
of typedefs in whichever case its uncecessary.
 I think a new boolean data type must be introduced..to D
boolean , true and false; these are taken from Java. boolean data types =
from Java.

Regards
Ravishankar
Oct 05 2003