Open Side Menu Go to the Top

10-02-2012 , 08:51 PM
Quote:
Originally Posted by jjshabado
It doesn't matter "how different" it is. It's different. Each of the things listed on your link are different in some way. Some people, some of the time, care about those differences. And its almost never because of not wanting to learn JS.



This is wrong - especially in a practical sense. Imagine one language supports only the addition operator. Another language builds on that and offers addition, subtraction, and multiplication (all by building on top of the base languages addition feature). Is it really realistic to say that the base language is more powerful?




I don't think people care about being called "lazy". I just think most of us think you're really wrong and missing the main point here.
It may be helpful to point out that the definition of "powerful" that I'm using is the objective measurement of tasks that the language is capable of accomplishing. Practicality requires considering subjective factors and thus cannot be be measured in a way that can be predictably reproduced.

Having said that, if you'd like to maintain your position that I'm flatly wrong and that you're correct, I would be interested in hearing an example (from anyone) where a secondary language does not possess, at a minimum, the limitations of its base language.

Just to be clear, by "limitations" I'm referring to tasks that are entirely impossible, without any possible exception, of being accomplished.

Quote:
Originally Posted by jjshabado
And the crux of our argument is that this isn't that relevant. GWT is a good example. Some people like Java and the tools they have to work with Java code. So they use GWT not because Javascript is hard to learn - but because they prefer Java.
This is probably the best answer to my original question that I've read from anywhere thus far. Thank you.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
10-02-2012 , 08:53 PM
Doesn't groovy abstract away alot of crap that's in java and makes it faster to get stuff done and less verbose?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 08:54 PM
Quote:
Originally Posted by daveT
sdturner is asking about preprocessors. Aren't these different than the general language choices?

I use SASS, a preprocessor to CSS. Using SASS creates native CSS and takes away many of the cross-browser pain-points, especially in regards to CSS3 items that require the -moz-, -webkit-, etc prefixes.

IMO, learning a pre-processor should come *after* learning the native language. This is completely separate from using Python w/o knowing C or assembly. A pre-processor is a slightly more elegant version of the native language, and unless you know the quirks of that language and how to handle the language natively, a pre-processor isn't going to be much use. A pre-processor saves a ton of hand-work, but it can't replace knowledge.

Maybe a decent correlation is trying to use a SQL DSL or ORM without actually knowing any SQL. The ORM isn't going to be very useful in inept hands but could be a powerful tool in hands with lots of SQL knowledge.
THIS.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:02 PM
Quote:
Originally Posted by sdturner02
It may be helpful to point out that the definition of "powerful" that I'm using is the objective measurement of tasks that the language is capable of accomplishing. Practicality requires considering subjective factors and thus cannot be be measured in a way that can be predictably reproduced.

Just to be clear, by "limitations" I'm referring to tasks that are entirely impossible, without any possible exception, of being accomplished.
This is an absurd statement. If you have to take 5000 LOC to do something in a base language that takes 10 LOC in the parent language - then you claim that they're equally as powerful?

My addition example is a perfect example of a language where I think any objective person would agree that the base language is less powerful than the higher level language.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:03 PM
Quote:
Originally Posted by sdturner02
THIS.
Except you're not talking about just preprocessors. You were talking about all languages that compile down to javascript. Right?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:09 PM
Quote:
Originally Posted by sdturner02
I would submit that a language built on top of another language is, without exception, less powerful than its base. This is a necessary and unavoidable result of the secondary language possessing, at an absolute minimum, all of the limitations of its base.
I could be wrong, but I think Google's Closure is more powerful and faster than hand-coded JS. I haven't investigated this issue personally, but that appears to be the claim.

Quote:
As an aside, I can't help but wonder if I should had used a word with a lesser tendency to provoke than "lazy".
We're all lazy, aren't we? Type less words and get more power: Who doesn't want that?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:16 PM
Quote:
Originally Posted by jjshabado
sdturner, I guess it seems like we're kind of piling on here. But this argument at its core is about the purpose of abstraction layers - which is arguably the most important computer science concept.
How dangerous is it, in your opinion, to use abstractions without knowing the underlying functionality of what you are working on?

I'm thinking more of the middle-level things in this discussion, not alluding to the idea of using Python without understanding register pointers (although I am beginning to think that understanding pointers is useful in some -- many? --regards, but I'm not there yet).
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:17 PM
Developer time & brainpower is the limiting resource in most cases. It makes sense to optimize developer usage by default.

That's what higher level tools do. They let the developer focus on their problem domain.

I've heard this exact debate 100 times. asm vs c., win api vs mfc, ...

Not needing to know the lower levels of abstraction is a win.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:20 PM
Quote:
Originally Posted by jjshabado
This is an absurd statement. If you have to take 5000 LOC to do something in a base language that takes 10 LOC in the parent language - then you claim that they're equally as powerful?

My addition example is a perfect example of a language where I think any objective person would agree that the base language is less powerful than the higher level language.
The way you're using the term "objective" suggests to me that you aren't fully comprehending my argument.

Perhaps some research on the concept of objectivity, particularly its distinction from subjectivity and reasonableness, will lead you to the conclusion that my statement isn't as "absurd" as you currently believe.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:34 PM
If you saying that taking more lines of code to write something in the base language than in the language that compiles down to the base language makes the base language more powerful then I agree, you are wrong. Especially if that difference in LOC equates to a time saving for the developer or maintainer of the code. You don't get medals for doing it the hard way.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:36 PM
Quote:
Originally Posted by kerowo
If you saying that taking more lines of code to write something in the base language than in the language that compiles down to the base language makes the base language more powerful then I agree, you are wrong. Especially if that difference in LOC equates to a time saving for the developer or maintainer of the code. You don't get medals for doing it the hard way.
And the majority of the time the compiled code will be more efficient than if you wrote it yourself.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:39 PM
Quote:
Originally Posted by daveT
How dangerous is it, in your opinion, to use abstractions without knowing the underlying functionality of what you are working on?

I'm thinking more of the middle-level things in this discussion, not alluding to the idea of using Python without understanding register pointers (although I am beginning to think that understanding pointers is useful in some -- many? --regards, but I'm not there yet).
Depends on how leaky the abstraction is. For example, I came away from my GWT project thinking I'd never use it again. It was nice but those few times that the abstraction broke down (meaning we had to hack the JS code directly) it was so painful as to outweigh the other benefits imo.

In general - the more mature the abstraction you're using is - the less you need to worry about it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 09:46 PM
Quote:
Originally Posted by sdturner02
The way you're using the term "objective" suggests to me that you aren't fully comprehending my argument.

Perhaps some research on the concept of objectivity, particularly its distinction from subjectivity and reasonableness, will lead you to the conclusion that my statement isn't as "absurd" as you currently believe.
Ok - by your super narrow and not very practical definition of "powerful" you are correct. By any more reasonable definition of "powerful" your statement was absurd.

And, of course, you're arguing that the cpu instruction set is the most powerful language available and that every single abstraction layer in a computer is equal or less powerful than the layer below it. That's how you know your statement is absurd.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:15 PM
Power is energy divided by time.

If something lets you do the same work faster, it's more powerful.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:20 PM
Quote:
Originally Posted by daveT
We're all lazy, aren't we? Type less words and get more power: Who doesn't want that?
Totally agree. I can't remember who it was, maybe Larry Wall, that said laziness is a trait of great programmers.

Quote:
Originally Posted by kerowo
If you saying that taking more lines of code to write something in the base language than in the language that compiles down to the base language makes the base language more powerful then I agree, you are wrong. Especially if that difference in LOC equates to a time saving for the developer or maintainer of the code. You don't get medals for doing it the hard way.
I'm not sure if this is directed to me, but on the previous page I gave a exact definition of programming language power. I think I even said something like "This is the definition I'm using", etc.

Quote:
Originally Posted by jjshabado
Ok - by your super narrow and not very practical definition of "powerful" you are correct. By any more reasonable definition of "powerful" your statement was absurd.

And, of course, you're arguing that the cpu instruction set is the most powerful language available and that every single abstraction layer in a computer is equal or less powerful than the layer below it. That's how you know your statement is absurd.
I can know that my statement is absurd because it's based on a statement of objective fact, wholly insusceptible to contradiction?

Quote:
Originally Posted by jjshabado
Except you're not talking about just preprocessors. You were talking about all languages that compile down to javascript. Right?
There are two separate debates occurring simultaneously. That you're unable to recognize this wouldn't be nearly as amusing but for the condescending and insulting tone of your posts in defense of an incorrect position.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:24 PM
Ok, you win then. Good luck with your JS career.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:28 PM
Quote:
Originally Posted by Neil S
Power is energy divided by time.

If something lets you do the same work faster, it's more powerful.
and if it requires less energy...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:28 PM
Quote:
Originally Posted by Neil S
Power is energy divided by time.

If something lets you do the same work faster, it's more powerful.
Under that definition of power, yes, that's correct.

I offered a different definition ITT, no more than 2 pages back. I actually clicked back to make sure it was still there. Some of the responses about the logical conclusions that follow from that definition made me suspicious that it had been deleted.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:31 PM
Quote:
Originally Posted by sdturner02
I'm not sure if this is directed to me, but on the previous page I gave a exact definition of programming language power. I think I even said something like "This is the definition I'm using", etc.
Yes, it's directed at you. And why not just answer the question? You are saying the counter intuitive things in this argument so the burden of proof is on you, so you dig up your argument again.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:34 PM
You don't just get to redefine terms as you see fit. I don't use redefined terms just because someone decides he's going to redefine terms.

I guess if we're redefining terms to fit our arguments to make strange, obscure points, then there's nothing more to discuss.

TSTHRIC
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 10:38 PM
sd,
i'd been under the impression you were a smart guy, and you seem like a good programmer, but it seems like you're being contentious just for the sake of it. i linked to a good article with lots of benefits of CS. it's fine if you're not interested in that -- JS is a good language by itself too -- but can you really not see why anyone would be interested in a different syntax or more built in features?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 11:14 PM
Quote:
Originally Posted by kerowo
Yes, it's directed at you. And why not just answer the question? You are saying the counter intuitive things in this argument so the burden of proof is on you, so you dig up your argument again.
Here it is:
Quote:
Originally Posted by sdturner02
It may be helpful to point out that the definition of "powerful" that I'm using is the objective measurement of tasks that the language is capable of accomplishing. Practicality requires considering subjective factors and thus cannot be be measured in a way that can be predictably reproduced.
I'm not disagreeing with your statement. If that was argument I was making, you'd be entirely correct. But LOC or ease of development or length of time to perform identical functions is unrelated to my argument.

Quote:
Originally Posted by Neil S
You don't just get to redefine terms as you see fit. I don't use redefined terms just because someone decides he's going to redefine terms.

I guess if we're redefining terms to fit our arguments to make strange, obscure points, then there's nothing more to discuss.

TSTHRIC
How am I redefining terms? Where was it defined in the first place for me to re-define it? If there's a universal definition of power as it relates to programming languages, I'm not aware of it. I stated the definition I was operating under and then offered the logical conclusion that follows. I'm not sure what I did wrong that everyone is so upset about?

Quote:
Originally Posted by gaming_mouse
sd,
i'd been under the impression you were a smart guy, and you seem like a good programmer, but it seems like you're being contentious just for the sake of it. i linked to a good article with lots of benefits of CS. it's fine if you're not interested in that -- JS is a good language by itself too -- but can you really not see why anyone would be interested in a different syntax or more built in features?
Reading this genuinely is upsetting to me. I don't want to alienate the community because I like it here. There's value to be leveraged from the expertise that's readily available, but more than that, I just enjoy the camaraderie.

I should point out that the argument I'm making has almost nothing to do with Javascript/CS, at least from my viewpoint. It's about the premise that I offered and the validity of the conclusions that follow.

I submitted that the power of a language is the measure of it's capabilities, regardless of practicability or ease of use. I offered a conclusion that follows from that, and then was insulted by condescending posts that dismissed the logic with subjective opinion. I defended in response, and received more dismissive arguments. I was accused of moving the goal posts when that just isn't the case.

What's more, the person that most aggressively contradicted my argument conceded that it was actually correct, yet somehow I still did something wrong. This occurred after the point in time where I thanked him for his excellent answer to CoffeScript/Javascript question. For me, it perfectly resolved the matter because it explained something that didn't make sense before.

The truth is, I can definitely be contentious and I know that. At times I fail to recognize when what I believe to be a lively debate is actually perceived to be a personal attack by the other party. I'm recovering from the legal profession, and those are remnants that are slow to leave.

In this case, my original question on the value of learning CS as oppposed to just going straight to JS was entirely innocent. I wasn't attempting to condescend people for using CS or anything like that. I mean, as a convicted PHP user, I'm the last person to be a language snob. The question resulted (to me, at least) in a debate on the varying degrees of power that languages possess.

To anyone that I may have insulted or annoyed, I apologize.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-02-2012 , 11:30 PM
Quote:
Originally Posted by sdturner02

Reading this genuinely is upsetting to me. I don't want to alienate the community because I like it here. There's value to be leveraged from the expertise that's readily available, but more than that, I just enjoy the camaraderie.

I should point out that the argument I'm making has almost nothing to do with Javascript/CS, at least from my viewpoint. It's about the premise that I offered and the validity of the conclusions that follow.

I submitted that the power of a language is the measure of it's capabilities, regardless of practicability or ease of use. I offered a conclusion that follows from that, and then was insulted by condescending posts that dismissed the logic with subjective opinion. I defended in response, and received more dismissive arguments. I was accused of moving the goal posts when that just isn't the case.

What's more, the person that most aggressively contradicted my argument conceded that it was actually correct, yet somehow I still did something wrong.
As I understand it, it's not that you did anything wrong, it's just that it's kind of silly. That definition of power isn't a useful one. So sure, you're technically right, but you've made an empty point.

Quote:
The truth is, I can definitely be contentious and I know that. At times I fail to recognize when what I believe to be a lively debate is actually perceived to be a personal attack by the other party. I'm recovering from the legal profession, and those are remnants that are slow to leave.

In this case, my original question on the value of learning CS as oppposed to just going straight to JS was entirely innocent. I wasn't attempting to condescend people for using CS or anything like that. I mean, as a convicted PHP user, I'm the last person to be a language snob. The question resulted (to me, at least) in a debate on the varying degrees of power that languages possess.

To anyone that I may have insulted or annoyed, I apologize.
fwiw, it never seemed to me you were trying to insult anyone personally, i just thought you were being argumentative for its own sake. but it sounds like you weren't, which is good. i too appreciate the general respect of the conversations here, i think it might have the highest content:ego ratio of any forum on the site.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-03-2012 , 12:26 AM
Quote:
Originally Posted by sdturner02
I submitted that the power of a language is the measure of it's capabilities, regardless of practicability or ease of use.
I don't know how to think of this. If you take any language that has all the basic primitivies of a Turing complete language, you can argue that they are all equally powerful, but the ease of use is widely divergent:

brain****:

Code:
+++++ +++++             initialize counter (cell #0) to 10
[                       use loop to set the next four cells to 70/100/30/10
    > +++++ ++              add  7 to cell #1
    > +++++ +++++           add 10 to cell #2 
    > +++                   add  3 to cell #3
    > +                     add  1 to cell #4
    <<<< -                  decrement counter (cell #0)
]                   
> ++ .                  print 'H'
> + .                   print 'e'
+++++ ++ .              print 'l'
.                       print 'l'
+++ .                   print 'o'
> ++ .                  print ' '
<< +++++ +++++ +++++ .  print 'W'
> .                     print 'o'
+++ .                   print 'r'
----- - .               print 'l'
----- --- .             print 'd'
> + .                   print '!'
> .                     print '\n'
brain**** is Turing complete, and probably no more powerful than assembly, but clearly, this is harder to use than assembly even though brain**** is portable(?). I understand that ease of use isn't technically congruent with power, but a language that is hard to use is too difficult to express the power, and thus it isn't powerful in a practical sense.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-03-2012 , 02:13 AM
haha, brain**** was the first language i was ever introduced to somehow? friend showed it to me in high school.

i mean, it's clearly not as powerful as javascript, but still...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

      
m