Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-

rate your language

Name: Anonymous 2010-07-28 5:39

Scalability:x/10;
Performance:x/10;
Ease of use:x/10;
verbosity:x/10;

Name: Anonymous 2010-07-28 5:41

Whenever I have to register at some bullshit forum, I typically take the name RichardStallman. If it's taken, I use RMSMatthewStallman. Sometimes I wonder how many people think that they are talking to the real rimmisu.

Name: Anonymous 2010-07-28 5:45

0
0
10
0

Name: Anonymous 2010-07-28 5:48

>>3
Haskell?

Name: Anonymous 2010-07-28 7:52

8
8
8
6

Name: Anonymous 2010-07-28 7:56

Here's mine, for python:

Scalability: 4/10;
Performance:6/10;
Ease of use:9/10;
verbosity:8/10;

Name: Anonymous 2010-07-28 8:06

Here's mine, guess the language;

Scalability: Fuck
Performance: your
Ease of use: inconsistent
verbosity:capitalisation.

Name: Anonymous 2010-07-28 8:48

>>7
pHp

Name: Anonymous 2010-07-28 8:56

Scalability: 9/10;
Performance: 5/10;
Ease of Use: 7/10;
Verbosity: 0/10;

Name: Anonymous 2010-07-28 8:59

If you're going to reply to this thread, at least state your language. Otherwise your replies are completely undescriptive.

Name: Anonymous 2010-07-28 9:03

>>10
If you're going to reply to a post, at least quote it. Otherwise your replies are meaningless and quite passive-aggressive.

Name: Anonymous 2010-07-28 9:05

Scalability:7/10; //I interpreted this as in relation to as inbuilt language constructs for concurrency?
Performance:7/10;
Ease of use:10/10;
verbosity:8/10;

Object Pascal :)

Name: Anonymous 2010-07-28 9:28

Scalability: 6/10
Performance: 6/10
Ease of Use: 9/10
Verbosity: 5/10

RACKET ↑
C ↓

Scalability: 3/10
Performance: 9/10
Ease of Use: 3/10
Verbosity: 3/10

Name: Anonymous 2010-07-28 9:48

Testing code highlight.

void trimCodans(void)
{
    int found = 0;
    for (;;)
    {
        int i;
        for (i = 0; i < codans.rows; i++)
        {
            if (codans.table[(i * codans.cols) + codans.emptyLeft] != CODAN_EMPTY)
            {
                found = 1;
                break;
            }
        }
        if (found) break;
        else codans.emptyLeft++;
    }
  //TODO: check right
}

Name: Anonymous 2010-07-28 10:28

>>14
Needs more goto.

Name: Anonymous 2010-07-28 12:52

C

Scalability: 10/10
Performance: 10/10
Ease of use: 3/10
Verbosity:   2/10

C++

Scalability: 7/10
Performance: 9/10
Ease of use: 1/10
Verbosity:   4/10

Java

Scalability: 8/10
Performance: 7/10
Ease of use: 7/10
Verbosity:   5/10

Python

Scalability: 0/10
Performance: 0/10
Ease of use: 10/10
verbosity:   5/10

Is there a language out there with worse performance than CPython? Serious question. It's still my language of choice for all non-performance-critical scripts :(

Name: Anonymous 2010-07-28 13:23

>>16
nothing performs better than C
Disregarded.

Name: Anonymous 2010-07-28 14:18

Name: Anonymous 2010-07-28 14:31

>>17
nothing performs better than C
Meaningless statement.

Aside: For some reason a lot of C++ programs tend to show better performance than equivalent C programs. I am still trying to work out why that is. The claim is often that C++ can express more efficient algorithms for these cases more naturally than C can, but every time I see a comparison made the C source is not what I would write (and not as fast.)

Name: Anonymous 2010-07-28 14:36

>>19
Make a benchmark:
1. C++ code
2. C code
3. C code which directly emulates C++
4. C code compiled as C++ code.

Name: Anonymous 2010-07-28 14:39

>>19
That claim is usually made by people who don't really know C.

Name: Anonymous 2010-07-28 14:39

>>19
The vast majority of the time, this is because of function pointers. Compilers aren't smart enough to statically link or inline a call of a function pointer argument. The equivalent C++ code uses a template parameter instead, forcing the compiler to statically link or inline it.

This isn't because it's not possible to do this in C; it's just because it's easier and safer in C++ than in C, so people are more likely to do it. The usual example is qsort() vs std::sort(). This fails of course as an argument for C++, because it's relatively easy to write a macro version of qsort() that does the same thing. For example: http://www.corpit.ru/mjt/qsort.html

What we really need is a language that can do this automatically. You just take a function pointer like normal, and if profile data determines that the function indirection is a bottleneck, the compiler can just duplicate the function for each value of the argument and statically link and inline each version. Unfortunately, modern languages are heading in the opposite direction in terms of performance and optimization, so we might never see this happen :(

Name: Anonymous 2010-07-28 14:50

im not a expert, but isnt typecasting much faster, safer and wastes less memory then templates?

Name: Anonymous 2010-07-28 15:00

>>23
I had to read only the first three words of your post to know that I'll see ``then'' used as ``than''.

Name: Anonymous 2010-07-28 15:02

>>22
JAVA could do this

Name: Anonymous 2010-07-28 15:08

>>24
I lol'd.

Name: Anonymous 2010-07-28 15:52

>>20
3. C code which directly emulates C++
You know this can't exist, right?

Name: Anonymous 2010-07-28 16:30

>>27

So C isn't turing complete

Name: Anonymous 2010-07-28 16:31

guess the language

Scalability:8-9/10;
Performance:7/10;
Ease of use:5/10;
verbosity:8/10;

Name: Anonymous 2010-07-28 17:05

>>29
Scala

Name: Anonymous 2010-07-28 17:33

>>19
I'm not the one that gave C a 10/10 in performance, so I don't know why you're quoting me.

Name: Anonymous 2010-07-28 17:44

>>31
Why wouldn't you?

Name: Anonymous 2010-07-28 18:09

C

Scalability:10/10;
Performance:10/10;
Ease of use:8/10;
verbosity:4/10;

Name: Anonymous 2010-07-28 18:41

>>32
Welcome to DrRacket, version 5.0 [3m].
Language: racket; memory limit: 1024 MB.
(define quality
    (λ(rating)
      (let ((in-range (λ(a b) (λ(x) (and (<= a x) (<= x b))))))
        (if ((in-range 1 9) rating)
            'opinion
            'LIES))))
(quality 10)
'LIES

Name: Anonymous 2010-07-28 19:20

>>33
C's pretty verbose, compared to what it could be.

Name: Anonymous 2010-07-28 19:24

>>33
What is ``verbosity'' for you? Substituting { for begin and } for end?

Name: Anonymous 2010-07-28 19:29

>>36
U MENA TERSENESS

Name: Anonymous 2010-07-28 19:39

Scalability: able to deliver scalable, modern turnkey implementations to rise to user demand
Performance: provides real-time results for round-the-clock mission critical solutions
Ease of use: patented accessibility platform ensures ease of integration between static computer and dynamic human inputs
Verbosity: colour-coded CamelCase engine creates a platform designed to hold the most information in the least amount of space while still being extensible to meet developer needs

Name: Anonymous 2010-07-28 19:48

>>34
(λ(x) (and (<= a x) (<= x b))))))
in scheme you can do (<= a x b)

Name: Anonymous 2010-07-28 20:51

Go
Scalability:10/10
Performance:10/10
Ease of use:9/10
verbosity:9/10

Name: Anonymous 2010-07-28 20:55

>>39
Huh, never knew that.

Name: Anonymous 2010-07-28 20:56

>>31
I quoted you because you "quoted" >>16 with a meaningless statement, completely of your own devising.

Name: Anonymous 2010-07-28 20:57

>>39
So it's like Python!
a <= b is not c in d or e

Name: Anonymous 2010-07-28 21:14

>>43
It's better than in python, because It doesn't have to be a special case in the parser and it works for most, if not all ,transitive binary relations

Name: Anonymous 2010-07-28 21:19

>>44
But you can't write what I just wrote in Lisp without cluttering everything with parentheses.

Name: Anonymous 2010-07-28 21:37

>>45
What's your point? That's like saying you can't write anything sizeable in python without using indentation.
I prefer not to have to remember some arbitrary precedence rules, you on the other hand do.
Besides, I'm not even sure what your intended use case for that example is

Name: >>46 2010-07-28 21:45

>>43
a <= b is not c in d
Checking with the precedence table at http://docs.python.org/reference/expressions.html, I'd argue that such a statement is ambiguous and therefore Scheme is better as it isn't able to express such a statement

Name: Anonymous 2010-07-28 21:55

>>47
It's unambiguous. Read the paragraph directly above the table; those operators all chain from left to right.

Name: Anonymous 2010-07-28 21:56

>>45
But you can't write what I just wrote in Python without cluttering everything with whitespace.

Name: Anonymous 2010-07-28 21:59

>>37
U MENA BREAVITY

Name: Anonymous 2010-07-28 21:59

>>48
So it does, my bad.
Although, while I'm bitching about python
> 3 < {"bar" : "baz" } < "foo"
True

"Strongly" dynamic typed my ass. I don't care what you're view are on operator precedence, but surely that should be a type error

Name: Anonymous 2010-07-28 22:16

>>51
I'm disappointed that they didn't make comparison between vectors and scalars more useful. It's great for being expressive and readable, even in a language where it's mostly useless.

import qualified Prelude
import TruthyPrelude

main = print . length . filter id $ 3 < [1 .. 10]

-- Outputs 2

Name: Anonymous 2010-07-28 22:17

>Go
there should be "overrateness"

Name: >>52 2010-07-28 22:19

Gosh, I'm embarrassed. The <{/code] is a typo. I meant [code]>, of course.

Name: >>52 2010-07-28 22:19

Okay really I can't type for shit this morning

Name: Anonymous 2010-07-28 22:24

>>53
Go isn't rated. It's also hard to judge at this time (not that I have much hope in it.)

Name: Anonymous 2010-07-28 23:31

10/10
10/10
10/10
10/10

Name: Anonymous 2010-07-29 0:08

>>57
Java?

Name: Anonymous 2010-07-29 1:00

>>58
How did you guess???

Name: Anonymous 2010-07-29 2:06

>>59
Only ENTERPRISE-level code uses magic numbers such as 10.

Name: Anonymous 2010-07-29 8:37

>>42
I see. So in a scale topping out at 10, giving something a rating of 10 does not actually mean nothing can be better than 10, even though, within that system, nothing can be better than 10?

God, why do I bother replying.

Name: Anonymous 2010-07-29 8:49

>>61
For the witty retorts?

Name: Anonymous 2010-07-29 9:32

>>62
Zing!

Name: Anonymous 2010-07-29 10:03

>>52
At some level, I think I just don't like Haskell because of the use of $, which makes me think of perl.

Name: Anonymous 2010-07-29 11:16

>>64
I don't like it either, and it's completely optional.

Name: Anonymous 2010-07-29 11:38

>>64
That's irrational. You're irrational.

Name: Anonymous 2010-07-29 11:58

>>64
I have a @@ operator in my ErstwhilePrelude. I find that this looks much nicer.

Name: Anonymous 2010-07-29 14:11

Haskell=INTERCAL+Perl+APL

Name: Anonymous 2010-07-29 14:46

>>68
"Make a pure language," they said.

Name: Anonymous 2010-07-29 14:49

>>68
Don't forget the IOC.

Name: Anonymous 2010-07-29 17:08

>>43-48
For all the complaining people do about Lisp's parens, at least you don't have to refer to a goddamn precedence table to figure out what an expression does.

Name: Anonymous 2010-07-29 18:53

>>71
Because no one has any idea that multiplication is supposed to happen prior to addition, etc.

Most of the stuff in that table is entirely logical, the rest being obscure operators that you're usually unlikely to combine with others, and in any case you would use parentheses anyway, so that's a moot point.

In Lisp, you need the parentheses even in simple cases where algebraic notation would be entirely sufficient (e.g. equations like 3*x**2 + 4*x + y + 4 are extremely annoying and unwieldy), but personally I'm not really bothered by that in the average case - generally, C code will be just as punctuated as Lisp, just sometimes in different places. My complaint about Lisp is the lack of infix notation which makes many expressions much harder to read and comprehend.
You say "3 times x squared", not "times 3 squared x" -- any more than you would say "ate I a hamburger". Infix is natural and sensible.

Name: Anonymous 2010-07-29 19:04

>>72
Infix appears natural and simple because that's what you've been thought in school. What is simpler (+ 1 2 3 4 5 6 7 8 9) or 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9?

As for 3*x**2 + 4*x + y + 4, (+ (* 3 x x) (* x 4) y 4) is pretty readable to me. It's only confusing the first few days/week of looking at it. It becomes as natural as infix after you've used it for a week or so, moreso if you use a structured editing package like Paredit.

Name: Anonymous 2010-07-29 19:21

EITHER THAT OR THE COMPILER PERHAPS

Name: Anonymous 2010-07-29 19:34

>>73
Infix appears natural and simple because that's what you've been thought in school.
I can still remember the look of disgust on my face when we were first introduced to BODMAS.

Name: Anonymous 2010-07-29 19:43

>>75
You're so vain. I bet you think this thread is about you, don't you?

Seriously, why did you bring a mirror to math class?

Name: Anonymous 2010-07-29 19:53

>>76
That was a very literal interpretation of, what I had presumed was a fairly common expression.

Name: Anonymous 2010-07-29 20:07

>>77
I don't think it is. FYI, I only responded so I could post those lyrics.

Name: Anonymous 2010-07-29 21:05

>>73
Great, now change that 3*x**2 to 3*x**9. Oops more parentheses.

Name: Anonymous 2010-07-29 21:38

>>79
Simple enough (* 3 x x) becomes (* 3 (expt x 9)).
Please keep in mind that I usually break down into many lines and read by indentation instead of actually counting or matching parens, here's one of the most verbose ways to ident it(automatically of course):


(+ (* 3
      (expt x 9))
   (* x 4)
   y
   4)

I find this quite readable, however it is more verbose. As verbose as it may look, typing/indenting/editing/transforming this code around (with key chords or automatically) is very easy and effortless with a good editor. It's also easy on the eyes if you spend at a week or so writing Lisp and getting used to it. Just like order of precedence took a bit to get used to during elementary school for some people.

Name: Anonymous 2010-07-29 22:26

>>80
You can find it as readable as you want; that doesn't change the fact that anyone who has had any schooling at all will recognize standard operator precedence.

Lisp is not a mathematician's language, by any means. There's a good reason for that.

Name: Anonymous 2010-07-29 22:52

>>81
that doesn't change the fact that anyone who has had any schooling at all will recognize standard operator precedence.
You're joking right?
Find a random adult and give them a sample calculation, say "3+4/2*8-1" and I'd bet a good third of them will group left to right

Name: Anonymous 2010-07-29 22:54

>>82
Find a random adult who is capable of writing a computer program in any language and they won't.

Name: Anonymous 2010-07-29 22:55

>>81
Lisp is not a mathematician's language, by any means. There's a good reason for that.
Yes, because they have Computer Algebra packages that not only have infix arithmetic, but proper superscripting/subscripting, actual 2D matrices, that recognise the stupid way that 'x' composes when used for the cartesian product of more than 2 sets and all the other syntactic monstrosities that mathematicians have inflicted upon themselves over the centuries.

Name: Anonymous 2010-07-30 0:40

Lisp/Forth try to modify something as basic as order of operators.
C doesn't try such cryptic bullshit and uses sane, normal and easily readable syntax(C++ templates excluded).

Name: Anonymous 2010-07-30 1:01

OLD ENGLISH
SCALABILITY 10/10
PERFORMANCE 7/10
EASE OF USE 9/10
VERBOSITY 2/10

Name: Anonymous 2010-07-30 1:03

>>85
Lisp/Forth try to modify something as basic as order of operators.
Is this the part where I point out that Lisp doesn't have operators
C doesn't try such cryptic bullshit
lol

Name: Anonymous 2010-07-30 1:14

>>87
WAYBT?

Name: Anonymous 2010-07-30 2:21

To all the folks talking about precedence of math operators: no fucking shit. We all know what they are.

Remember this all started with the following python expression:

a <= b is not c in d or e

What fucking math operators are in there? None. There is one equality operator there, except it has different precedence than in math (where it would generally have the highest precedence.)

And I've worked with python for years in industry, and many folks from many different libraries and frameworks really do write lines of code like that. Unnecessary parens are considered anti-zen-of-python. It's fucking bullshit.

Name: Anonymous 2010-07-30 3:08

There is one equality operator there, except it has different precedence than in math (where it would generally have the highest precedence.)
HIBT?

Name: Anonymous 2010-07-30 4:06

>>90
Maybe >>89 is Australian

Name: Anonymous 2010-07-30 5:52

>>90
*lowest

Don't change these.
Name: Email:
Entire Thread Thread List