What languages have higher levels of abstraction and require less manual memory management than C++? -


i have been learning c++ while now, find powerful. but, problem the level of abstraction not , have memory management myself. languages can use uses higher level of abstraction.

java, c#, ruby, python , javascript big choices before you.

java , c# not hugely different languages. big difference you'll find c++ memory management (i.e. objects automatically freed when no longer referenced). chose these if interested in desktop style applications, or keen on static typing (and you'd choose between them based on how feel towards microsoft , windows platform). in both cases you'll find richer standard libraries you'll used c++.

python , ruby take step away static typing, world can call , method on object (and fail @ runtime if it's not there). both blessing (a lot less boilerplate code) , curse (the compiler can't catch errors anymore). once again, you'll find have richer standard libraries, , higer level again java / c#. performance main downfall, python being faster ruby understand it. choose between them, you'd choose ruby if you're interesting in web development ruby on rails framework community, , otherwise go python.

javascript more different c++ in away classes entirely. objects cloned other objects , can have methods , properties added them @ runtime. flexible, easy make total mess. javascript real choice if you're interested in running applications in browser, coming own platform. you'll find standard libraries available rather limited if you're not doing lot browser, there quite few frameworks fill in of gaps.

some other interesting, though more niche choices are

  • smalltalk - more or less in ruby , python camp, , faster understand it. careful though _ i've seen lots of engineers learn smalltalk , never come ;)
  • objective-c - when c went object oriented, c++ went 1 way (static typing), , objective-c went other (dynamic typing). it's quite smalltalk inspired, , has standard library if you're in mac / iphone land. in terms of memory management, unlike else i've listed, it's not garbage collected (though that's option on mac os x 10.5), have reference counting scheme makes life simpler managing memory hand.
  • lisp - i've never learnt myself beyond needed minor emacs hacking. understand it, libraries nice in day, though language remains supremely elegant, they've fallen little behind times.
  • haskel - if wanted complete break objects , classes, haskel , it's functional approach interesting way go (or lisp above, or f# if in .net land). basically, you're giving loops , variables in favour of doing recursively. takes time wrap mind around, , isn't practical real world applications, it's 1 learn.
  • eiffel - love - clean syntax, , designed serious engineering type systems. statically types c# , java, , weaker standard library, make think language , class library design.
  • actionscript , flex - programming interface flash, based on seems statically typed version of javascript. i've played bit, , it's quite slick if you're interested in developing media based applications. can push beyond browser flex , air platform build real desktop apps.

Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -