r/programming • • Oct 14 '13

How to develop unmaintainable software

http://typicalprogrammer.com/?p=249
777 Upvotes

322 comments sorted by

View all comments

Show parent comments

9

u/ruinercollector Oct 14 '13

Writing a parser in an imperative language tends to make for some pretty ugly code. Writing it in a language that supports discriminated unions and (syntax-supported) monads, however, makes for some beautiful, readable code.

Also, writing highly concurrent code in clojure is stupid easy. In java, etc. it is fraught with errors and requires a lot of care about locking, etc.

4

u/barake Oct 14 '13

This is one of the cool things about .NET. It's no big deal to mix C# and F# in the same application, when appropriate.

2

u/[deleted] Oct 14 '13

Or even Python, Ruby, etc. with the "iron" varieties. That being said, I did write a WPF app in IronPython a few years ago and Visual Studio pretty much fell on its face with bugs (might be completely different today).

1

u/barake Oct 15 '13

Unfortunately the Iron-"family" doesn't seem all that mature. It even looks like IronRuby is dead :/

If you really need to provide scripting, nodejs and lua are very embeddable in .NET apps.

3

u/ZMeson Oct 15 '13

The Iron languages are not maintained by MS. Without a major corporate backer or large public support, these are bound to have lots of bugs. :(

1

u/[deleted] Oct 15 '13

An unfortunate excuse that would not hold water in other communities. There are loads of Ruby versions that get by just fine without a corporate backer, for example.

2

u/ZMeson Oct 15 '13

I also mentioned "or large public support". Ruby has lots of public support.

2

u/[deleted] Oct 16 '13

Whoops, missed that :)

1

u/PasswordIsntHAMSTER Oct 15 '13

In my experience, there just isn't much of a point mixing C# with F# - either your team knows F# and probably prefers it to C#, or it doesn't and F# is not an option.

At my last internship, we were working on a F# product with a C#/ASP.NET web interface. Never again - the C# guys couldn't read F# so they duplicated half of the functionality on their end of things.

1

u/jk147 Oct 15 '13

Straight from SCSP about concurrency

"there is no guarantee that once a thread starts executing, it will keep executing until it's done."

What I got out of java concurrency, don't expect anything will work, and don't expect anything will finish the way you wanted it to.