Programmers?

pffft, real computer scientists are mathematicians.

Won't argue with you there. Guess it's a good thing I'm really a software engineer :cool:.

Haskell has a empesis on what you acutally want(Expressions), rather than how do it(Lists of statements) and a lot less state. If haskell kicked off there would be a lot less bugs in code.

Sure, fewer bugs and shorter code in the end but actually writing the program to begin with is where the headache begins. The way I try to solve problems is by breaking them down into a series of smaller sub-problems and Haskell (maybe just functional programming in general) does not seem compatible with this way of thinking. If Haskell kicked off, my productivity would go right through the floor.
 
pffft, real computer scientists are mathematicians.

Haskell has a empesis on what you acutally want(Expressions), rather than how do it(Lists of statements) and a lot less state. If haskell kicked off there would be a lot less bugs in code.

and back in the real world, not everything amounts to mathematical equations. I need software to represent my real world objects, not equations. My real world objects have behaviours that are represented by statements (methods etc.) :p
 
and back in the real world, not everything amounts to mathematical equations. I need software to represent my real world objects, not equations. My real world objects have behaviours that are represented by statements (methods etc.) :p
Everything your computer does is a mathatical algothrim after all, all it does is work in numbers at base 2.

You need to basic computer science math like graph theory(Searching, data structures, path finding, A.I), Combinatorics, N-P Complete'ness(SP) is good to know because a good programmers knows if his problem he is trying solve a imposible problem. The best thing to do when N-P Complete problem comes along is to use a estimated algothrim.

Relational theory is good to know for representing objects in databases.

Or you just be doing basic CRUD applications for rest of your live.

Haskell isn't that hard, I only had trouble with monads, but infinte lists are good.
 
Last edited:
Everything your computer does is a mathatical algothrim after all, all it does is work in numbers at base 2.

Sure, but the real world doesn't work like that.

You need to basic computer science math like graph theory(Searching, data structures, path finding), Combinatorics, N-P Complete'ness(SP) is good to know because a good programmers knows if his problem he is trying solve a imposible problem. The best thing to do when N-P Complete problem comes along is to use a estimated algothrim.

Most real life applications aren't built on complex algorithms; they're built on architectures.

Haskell may be good for solving algorithmically complex problems, but that's a fairly specific domain.
 
Sure, but the real world doesn't work like that.



Most real life applications aren't built on complex algorithms; they're built on architectures.

Haskell may be good for solving algorithmically complex problems, but that's a fairly specific domain.

You do know algorthem is just set of statements, a algorthem can be anything, an application would do nothing without algorthems, and those things I said arn't complex there basic stuff. If you want to search some stuff? You, will use them. Path finding in a game? Then dijkstra's algorthem which is graph theory. Indexing files? Map-reduce. Storing stuff in a database? Normalisation and First-order logic

There basic stuff.
 
Last edited:
You do know algorthem is just set of statements, a algorthem can be anything, an application would do nothing without algorthems, and those things I said arn't complex there basic stuff. If you want to search some stuff? You, will use them. Path finding in a game? Then dijkstra's algorthem which is graph theory. Indexing files? Map-reduce. Storing stuff in a database? Normalisation

There basic stuff.
Talking of basic stuff, you should learn how to spell algorithm.
 
Everything your computer does is a mathatical algothrim after all, all it does is work in numbers at base 2.

You need to basic computer science math like graph theory(Searching, data structures, path finding, A.I), Combinatorics, N-P Complete'ness(SP) is good to know because a good programmers knows if his problem he is trying solve a imposible problem. The best thing to do when N-P Complete problem comes along is to use a estimated algothrim.

Relational theory is good to know for representing objects in databases.

Or you just be doing basic CRUD applications for rest of your live.

Haskell isn't that hard, I only had trouble with monads, but infinte lists are good.
Quite, but I don't need to know the somewhat complex algorithms needed to add my delivery to a container, and have it assigned to a van which will be given a delivery address, do I? I just need to know my Delivery object, is contained in a Container object, which in turn is assigned to and contained within a Van object, which has an Address to deliver to.
 
You need to basic computer science math like graph theory(Searching, data structures, path finding, A.I), Combinatorics, N-P Complete'ness(SP) is good to know because a good programmers knows if his problem he is trying solve a imposible problem. The best thing to do when N-P Complete problem comes along is to use a estimated algothrim.
Again, anothyer person who can't spell algorithm. WTF.

UK|AL - you sound like someone who is trying their damndest to justify their Computer Science degree, because you're worried there are actual programmers out there who can do it better than you - even without a degree. I'm allowed to judge you like this because I have a degree in CS.

The whole point of high level languages like Java and C++ is so that people can approach computer programming without knowing the reams of theory behind it, so what you're saying is a load of tosh.

There are more talented programmers out there who don't have CS degrees compared to those that do.

Relational theory is good to know for representing objects in databases.
Or just common sense, once you have got your head around normal forms (the important ones being short Wikipedia articles, at most). You do not need relational theory to know how to design good databases, good grief. This is why Relational Database Management Systems (RDMS) like MySQL exist.

Or you just be doing basic CRUD applications for rest of your live.
Here is a good quote I've picked up: "We're better than you at software. You probably went to college at some crap and ****ify your algorithms all over whiteboards, doing stuff and repeating patterns that we just know in our heads as "how it works"".

Haskell isn't that hard, I only had trouble with monads, but infinte lists are good.
Haskell is an academic language and an academic project. It isn't properly used or regarded in the real world.
 
Again, anothyer person who can't spell algorithm. WTF.

You can't spell another? By god you must be really dumb by your logic.

RDMS does not autmatically design good databases, you have no idea how many times I have seen databases with duplicate data with no data intergretity built in.

Haskell is used in the real world, telephone exchanges use functional languages, Microsoft uses functional languages, nokia uses functional languages, data exhange centres use functional languages i could go on.

Haskell is a very high level language, it's closer to a 4gl language which based on what you want done, rather than a 3gl(Java for example) which you telling it how it's going to be done, it is easier once you get use to it. That's the difference most programmers can't get the head around, it's a different style of programming.

I like how people try to verbally attack me once all there arguments run out :P Typical. I can tell you have a professional atitude.
 
Last edited:
Hi,

C++ (Primary langauge) from Borland/Codegear + VCL, GCC and some .NET/VC++ stuff
PHP + SQL, CSS, HTML

Then stuff i can do basic things in - VB.NET C#.NET, JavaScript, VHDL

I've worked with quite a lot of APIs and systems including OpenSSL, DirectX, Windows Multimedia, COM.

My job? Well, currently i'm in my final year of uni, but i've already had my new contract over for my Software Developer job at the company i'm currently freelancing for.

My degree? Audio Technology @ Salford. Nothing whatsoever to do with software programming.
 
You do know algorthem is just set of statements, a algorthem can be anything, an application would do nothing without algorthems, and those things I said arn't complex there basic stuff.

Right, but simple algorithms can be implemented effectively and easily in all languages, regardless of paradigm.
 
Right, but simple algorithms can be implemented effectively and easily in all languages, regardless of paradigm.
Depends quick sort in haskell

Code:
qsort []     = [] //Redudent line, used for defining quick sort for empty lists, it just returns the array back again
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
Quicksort in c
Code:
void qsort(int a[], int lo, int hi) {
{
  int h, l, p, t;

  if (lo < hi) {
    l = lo;
    h = hi;
    p = a[hi];

    do {
      while ((l < h) && (a[l] <= p)) 
          l = l+1;
      while ((h > l) && (a[h] >= p))
          h = h-1;
      if (l < h) {
          t = a[l];
          a[l] = a[h];
          a[h] = t;
      }
    } while (l < h);

    t = a[l];
    a[l] = a[hi];
    a[hi] = t;

    qsort( a, lo, l-1 );
    qsort( a, l+1, hi );
  }
}

Do we have code tags here for formatting?


Don't get me wrong I still use Java, C# and C for the most projects, but learning haskell taught me how to reduce redundant state, thus better imperative code. It's just that those languages tend to just limit the scope of state through private members and that, but functioanal languages just gets rid of it mostly. The majority of bugs are from state being modified by someone else when it should not be messed with.

It's even worse with dymanic languages since a number can be replaced with something completly different like a letter at runtime :P
 
Last edited:
[code][/code]
code tags.

btw, all you've done there is create a lambda function that uses an existing function.. that's not 4gl. You've also compared it to C which is 2gl.
 
Last edited:
Depends quick sort in haskell

snip

True, but practically speaking you're unlikely to have to implement such algorithms yourself; that's what standard libraries are for. The situations in which functional programming can make things that much simpler are too few to warrant using it above an imperative/OO language.

The advantage of OOP, for example, is in how well it can represent real world situations, something functional languages aren't so well suited to, as Dj_Jestar said.

Of course, OOP and functional aren't orthogonal paradigms: some languages are both, e.g. F#.
 
[code][/code]
code tags.

btw, all you've done there is create a lambda function that uses an existing function.. that's not 4gl. You've also compared it to C which is 2gl.

http://en.wikipedia.org/wiki/Third-generation_programming_language

It uses filter which is pretty much essential for lists in functional languages, along with map and reduce(FOLDR, and FOLDL in haskell which defines the direction it reduces from top to bottom, or bottom to top). it's also recursive so it calls itself.

First class functions are essential in haskell, you can pass them as arguments to other functions, so lamdas are used a lot.
 
Last edited:
Back
Top Bottom