|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
By the way, if you want to make a new programming language(read:your perfect programming language), what is the good features of yours then?
E.g.: - Explicit data-type declaration and conversion, it's make my code clear and bug-free. - Passing function parameter by reference, works with native API libraries. - Unlimited number and array size, I'm always do dynamic programming. - ... Plus the reason please... |
|
#2
|
||||
|
||||
|
Usually "By the way" is an added thought to a conversation. Interesting to start your very first post on a forum with it.
My number one feature is: - Well organized and easily referenced documentation with clear and concise examples
__________________
medialint.com "Beware of the man who works hard to learn something, learns it, and finds himself no wiser than before. He is full of murderous resentment of people who are ignorant without having come by their ignorance the hard way." - Vonnegut - Cat's Cradle, 1963 |
|
#3
|
||||
|
||||
|
I'd like a simple syntax, with a bunch of built in functions, for ease of use. :P
...AND NO DANG MODULES! *glares at Python* |
|
#4
|
||||
|
||||
|
Recipe for my perfect language:
- Every single concept in the language should be first-class, highly composible and easily understood. The aim here is to create a language that is extremely flexible and expressive, but not at the expense of simplicity. This was my goal in creating Hula, an experimental programming language based on a unique classless object-system and refined multiple-dispatch. Although this sounds complicated all it really means is that everything in the language is an object, and that methods can be created that operate upon those objects individually; the correct behavior is chosen based on the identity of every object in the call. This allows an unprecedented amount of control. Any object can change independently of every other object. The language has no variables, no scope and no syntax. Conceptually, it’s works on the principle of direct manipulation. Users interact with objects in a graphical environment ala the Self programming language. The resulting language may actually be terrible, but at least in theory this is "my perfect language" .Take care, Mark. |
|
#5
|
|||
|
|||
|
Most of the features I'm looking for are those of modern functional languages, e.g. haskell and ocaml, but with the addition of convenient-to-use dependent types. Type inference, referential transparency, pattern matching, higher order polymorphism, ADTs, GADTs. They all combine to produce elegant code.
|
|
#6
|
||||
|
||||
|
Quote:
I disagree: while those features may combine to enable elegant code they certainly don't combine to produce it, at least not for any informed definition of elegant (Edit: or produce). I would argue that many of the features that are typically associated with functional programming aren't inherently features of functional programming. Unfortunately people tend to mistake the paradigm and the features exhibited by languages of that type. The commonly held belief that functional programming automatically leads to better code is damaging. Stop it now .Enjoy, Mark. Last edited by netytan : September 1st, 2008 at 09:15 PM. |
|
#7
|
|||
|
|||
|
I forgot some points which are even more fundamental --
Minimal syntax and a coherent foundation / core language. The bare minimum of odd one-off rules and gotchas (I don't know of any language that has none) Static typing. Higher order functions which allow currying and partial application. |
|
#8
|
||||
|
||||
|
Quote:
Hi Jamie ,Higher-order functions are okay... but wouldn't higher-order forms be better? The ability to create and return new semantic concepts would make higher-order functions obsolete. Maybe I'm to close to the project but I'm quite fond of the Hula core. The only thing I can say against it is that perhaps it's overly flexible: there are no one-off rules, because there are no fixed rules. I can't think of anything that couldn't be changed with relative ease. It's a bit of a slut: happily exposing her implementation with her favorite objects .If I do my job correctly then there wont be any one-off gotchas... not any... I guess that'll be a first. Mark. P.S. I'd love to debate this subject more with you. |
|
#9
|
||||
|
||||
|
Quote:
|
|
#10
|
||||
|
||||
|
Quote:
Haha yes. As long as there is a convenient collision-free way to distribute code that others can use then the no-dang-modules requirement could be satisfied. There are several alternatives; does anyone care to suggest one? ![]() Take care, Mark. |
|
#11
|
|||
|
|||
|
Quote:
Hi, what exactly do you mean by higher-order form? Are there other languages with this feature? Does it sometimes go by another name, e.g. type constructors or first class types? If it is a more general concept than HOFs how would it represent a simple polymorphic function that takes one function to another like Code:
f :: (a -> b) -> [a] -> [b] f g = map g > let h = f id in (h [1], h ['a']) ([1], ['a']) ? |
|
#12
|
||||
|
||||
|
I was referring to the idea that even "special" forms* can be and are first-class: they can be passed around and created at will. I'm unaware of any language which could support this, besides Hula.
In theory similar power could be pried from a Lisp system with first-class macros and no special forms, but that will never happen. Does this clarify things? Mark. * There are absolutely no special forms to speak of in Hula. Instead it uses “reifiers” to implement a highly extensible language/interpreter/compiler, and make these details available to the programmer. The net result is that you can create new forms easily, and treat them around as first-class objects; higher-order functions work in this way. Edit: Forth could support this is compiler words could be pushed into the stack. Last edited by netytan : September 3rd, 2008 at 05:43 PM. |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > Other Programming Languages > Other Language - Good programming language features for you? |
| Thread Tools | Search this Thread |
|
|