Advertisement

What's in a language that makes you like it

Started by February 14, 2014 06:00 AM
63 comments, last by cr88192 10 years, 8 months ago

To me, Flexibility in a languages approach are the most fun. I wrote a lot of PHP in my profession, and what I like about it is there is always something new about the language to discover. Whether it's a complete paradigm shift or just a minute change that rocks your world, PHP is the reeses peanut butter cup of programming languages: there's no 'wrong way'.

I don't like something that in of itself IS the framework, I want to write in a language that can CREATE frameworks. Getting close to the metal is a thrill.

But ultimately I just like something thats clean and makes sense to read. Growing up I've gotten very used to ECMA Syntax through Javascript and Actionscript2; Java syntax and style through Java, Actionscript 3, and C#; and C like syntax through .. well C and C++ and the tones of C style scripting languages out there.

Python hasn't been very good at making me look at it and think "man that's beautiful I should use that" even though that's it's primary goal. Ruby as well just doesn't make a lot of sense to me on the surface. But that style of language just isn't MY style is all heh

Signed: Redacted

To me, Flexibility in a languages approach are the most fun. I wrote a lot of PHP in my profession, and what I like about it is there is always something new about the language to discover. Whether it's a complete paradigm shift or just a minute change that rocks your world, PHP is the reeses peanut butter cup of programming languages: there's no 'wrong way'.

I don't like something that in of itself IS the framework, I want to write in a language that can CREATE frameworks. Getting close to the metal is a thrill.

But ultimately I just like something thats clean and makes sense to read. Growing up I've gotten very used to ECMA Syntax through Javascript and Actionscript2; Java syntax and style through Java, Actionscript 3, and C#; and C like syntax through .. well C and C++ and the tones of C style scripting languages out there.

Python hasn't been very good at making me look at it and think "man that's beautiful I should use that" even though that's it's primary goal. Ruby as well just doesn't make a lot of sense to me on the surface. But that style of language just isn't MY style is all heh

agreed.

I am not much of a fan of Python, Ruby, or Lua syntax either.

of these, Lua seems to be the less bad option though...

I prefer C mostly for its power, and C++ has some nice features to add onto this.

Java has a nice syntax in some ways, albeit it is at times a bit verbose and cumbersome, and its ability to interface with native code is notably not-so-good.

C# is also pretty good, but its tool support isn't quite so great on non-Windows targets.

a few times I am also wishing that either it would support a few more of the missing C features, or provide operator overloading to make them easier to fake. for example, I like being able to fill array members via "*t++=...;", however, in C# it is necessary to either wrap it and use a method call, or to use real pointers and need to mark the code as unsafe.

well, and the ability to call static methods via an object instance (like with virtual methods) would be nice.

a drawback of C, C++, Java, and C#, is the general absence of implementations providing the ability to compile them dynamically at runtime.

I suspect this is likely one of the major motivators for the use of both a compiled language and a scripting language in the same project.

there is some difficulty though (in a language design and implementation sense) in trying to make a language that works equally well as both an implementation language and a scripting language.

Advertisement

a drawback of C, C++, Java, and C#, is the general absence of implementations providing the ability to compile them dynamically at runtime.

I suspect this is likely one of the major motivators for the use of both a compiled language and a scripting language in the same project.

there is some difficulty though (in a language design and implementation sense) in trying to make a language that works equally well as both an implementation language and a scripting language.

See Roslyn which enables things like ScriptCS.

After using a few languages I've come to the conclusion that closures and lambda expressions are one of the key things required in a language. Objects are important (but not inheritance or polymorphism). Strong typing with optional weak typing of objects is important. For speed having access to stack and heap allocation (with pointers) and being able to reinterpret memory for low level optimization is useful. (Especially when doing anything with binary). Other than good threading support and operator overloading not much else is required. Syntactically I prefer mandatory braces using a C# style for the standard library. Inline JSON syntax is also important. I'd be pretty fine if JS and C# had a baby that was raised by C++. There's still obviously feature missing. Having attributes that support lambda expressions being one. Also having a language that supports adding parser rules inline. Like including modules that adds language features for specific applications or syntactic sugar. I digress, also SIMD intrinsics built into the language.

To me, Flexibility in a languages approach are the most fun. I wrote a lot of PHP in my profession, and what I like about it is there is always something new about the language to discover. Whether it's a complete paradigm shift or just a minute change that rocks your world, PHP is the reeses peanut butter cup of programming languages: there's no 'wrong way'.

I don't like something that in of itself IS the framework, I want to write in a language that can CREATE frameworks. Getting close to the metal is a thrill.


But ultimately I just like something thats clean and makes sense to read. Growing up I've gotten very used to ECMA Syntax through Javascript and Actionscript2; Java syntax and style through Java, Actionscript 3, and C#; and C like syntax through .. well C and C++ and the tones of C style scripting languages out there.

Python hasn't been very good at making me look at it and think "man that's beautiful I should use that" even though that's it's primary goal. Ruby as well just doesn't make a lot of sense to me on the surface. But that style of language just isn't MY style is all heh


there is some difficulty though (in a language design and implementation sense) in trying to make a language that works equally well as both an implementation language and a scripting language.

maybe it's better to not have a compiled scripting language.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

To me, Flexibility in a languages approach are the most fun. I wrote a lot of PHP in my profession, and what I like about it is there is always something new about the language to discover. Whether it's a complete paradigm shift or just a minute change that rocks your world, PHP is the reeses peanut butter cup of programming languages: there's no 'wrong way'.

I don't like something that in of itself IS the framework, I want to write in a language that can CREATE frameworks. Getting close to the metal is a thrill.


But ultimately I just like something thats clean and makes sense to read. Growing up I've gotten very used to ECMA Syntax through Javascript and Actionscript2; Java syntax and style through Java, Actionscript 3, and C#; and C like syntax through .. well C and C++ and the tones of C style scripting languages out there.

Python hasn't been very good at making me look at it and think "man that's beautiful I should use that" even though that's it's primary goal. Ruby as well just doesn't make a lot of sense to me on the surface. But that style of language just isn't MY style is all heh


there is some difficulty though (in a language design and implementation sense) in trying to make a language that works equally well as both an implementation language and a scripting language.

maybe it's better to not have a compiled scripting language.

That has nothing to do with it. A scripting language is like a first aid kit - it provides a simple way to get basic tasks done and it's not intended to write complicated programs. just like a first aid kit is not intended to be used for surgery. And therein lies the problem, if you keep the language basic you can't use it easily for writing an OS (for example), if you make the language too complicated, the scripts become far too much for the program trying to run them.

Advertisement

To me, Flexibility in a languages approach are the most fun. I wrote a lot of PHP in my profession, and what I like about it is there is always something new about the language to discover. Whether it's a complete paradigm shift or just a minute change that rocks your world, PHP is the reeses peanut butter cup of programming languages: there's no 'wrong way'.

I don't like something that in of itself IS the framework, I want to write in a language that can CREATE frameworks. Getting close to the metal is a thrill.


But ultimately I just like something thats clean and makes sense to read. Growing up I've gotten very used to ECMA Syntax through Javascript and Actionscript2; Java syntax and style through Java, Actionscript 3, and C#; and C like syntax through .. well C and C++ and the tones of C style scripting languages out there.

Python hasn't been very good at making me look at it and think "man that's beautiful I should use that" even though that's it's primary goal. Ruby as well just doesn't make a lot of sense to me on the surface. But that style of language just isn't MY style is all heh


there is some difficulty though (in a language design and implementation sense) in trying to make a language that works equally well as both an implementation language and a scripting language.

maybe it's better to not have a compiled scripting language.

That has nothing to do with it. A scripting language is like a first aid kit - it provides a simple way to get basic tasks done and it's not intended to write complicated programs. just like a first aid kit is not intended to be used for surgery. And therein lies the problem, if you keep the language basic . . . if you make the language too complicated, the scripts become far too much for the program trying to run them.
so you can have a compiled scripting language? I thought they should be interpreted so that you can do things at runtime.

you can't use it easily for writing an OS (for example)

;)

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


so you can have a compiled scripting language? I thought they should be interpreted so that you can do things at runtime.

I wasn't trying to say that scripting languages could be compiled, just that that isn't the reason why it's hard to write a single language that's good for both scripting and writing applications. That being said, there's no inherent reason that user created scripts couldn't be compiled. It's just not normal.

so you can have a compiled scripting language? I thought they should be interpreted so that you can do things at runtime.


A number of scripting languages (including Lua) do offer the ability to compile to bytecode, and in fact a text chunk will be compiled on the fly when it is loaded. Then there are things like LuaJIT which is a re-implementation of the VM and a just-in-time compiler for Lua that compiles Lua script down to native machine code and can achieve a quite significant performance increase over "vanilla" Lua.

For me, I like a language if it allows me to do what I need to do without a whole bunch of hoop-jumping to do it. Lua+LuaJIT is my preferred high-level tool loadout, and C++ is my preferred low-level tool. The C++ layer provides the performance critical stuff (rendering abstraction, etc...) while the Lua layer provides the expressiveness necessary to quickly prototype and implement the high level things like enemy AI, spell and skill execution, and so forth.

My favorite languages are all derived from C; C++, C#, and Objective-C.

Although Objective-C is quite - different - in the ways that it does things (making classes, for example), once you get used to it it starts to become really easy.

C++ I like because it's a lot more cross-platform and is capable of pretty much everything short of time travel!

C# is probably my absolute favorite for its legibility, its speed (of development), and its now cross-platform support thanks to the Mono project. Without it, Unity probably would suck. :P

My website! yodamanjer.com
My development blog!

Follow me on Twitter! [twitter]jwg1991[/twitter]

This topic is closed to new replies.

Advertisement