D - HELLO D Fans !
- "RaviShankar" <rsriniva kyocera-wireless.com> Oct 05 2003
Content-Type: text/plain; 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