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
=======================================
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
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
level of the problem domain. We see in the use
of typedefs , naming convention, abstract data types , static
and
function pointers for data hiding and inheritance , libraries for concurrency ,
code reuse and so on. It is best
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.
C+ is a dialect of C with extensions for building large fault-tolerant
systems.The low level features of C are retained
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 :
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+ = 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