Thirsteh

- friends
2,565 link karma
8,753 comment karma
send messageredditor for
what's this?

TROPHY CASE


  • Five-Year Club

    Verified Email

Blizzard intentionally makes passwords non-case sensitive by oterenin netsec

[–]Thirsteh 3 points4 points ago

Yeah, that's one hell of an expensive mobile app, huh?

Rejsekortet er tre gange dyrere for trafikselskaberne end klippekort by kingguruin Denmark

[–]Thirsteh -1 points0 points ago

*host*NemId*host*

Why I am Creating a Programming Language by TheCorehin programming

[–]Thirsteh 7 points8 points ago

You are correct. The static typing component of Dart is completely optional, and is only there to please the people who desire static typing. It will even work if you don't follow your own type signatures. Cowardlydragon is talking out of his ass (see this.)

From the Dart website:

Why do type annotations have no effect at runtime?

One reason is that type annotations are optional. If they affect run-time behavior, then what happens to var declarations? We might always give them behavior as if they were typed Dynamic, but that would be strange when the programmer knows the type but didn't care to type it out. We might give them behavior depending on what static type is derived by type inference, but that would make your program behavior depend on how complete the inference manages to be, which can be difficult to predict.

Another reason is that type annotations can be completely erroneous. The program is still allowed to run, as best it can, if runtime checking is not turned on. Making its behavior depend on incorrect type declarations would be very strange.


Don't you want strong typing for better performance?
That's what I thought, too. The VM designers say that in practice, type guarantees really don't help them nearly as much as you might think, because type checks are not a major drain on performance.

Why I am Creating a Programming Language by TheCorehin programming

[–]Thirsteh 3 points4 points ago

Smells like jealousy/Jante's Law in effect.

Why I am Creating a Programming Language by TheCorehin programming

[–]Thirsteh 2 points3 points ago

Rails isn't a language -- Ruby is. It was created by Yukihiro Matsumoto (Matz) as a hobby project. You also conveniently left out Python which was created by Guido van Rossum (also as a hobby project.) If you think either of these languages aren't "successful" then you're not in a position to comment on the state of programming languages.

Why I am Creating a Programming Language by TheCorehin programming

[–]Thirsteh 8 points9 points ago

Seriously, is the author, what, 20 years old? Are you fucking kidding me? I don't care how brilliant and eager he is. Programming language design isn't for almost-teenagers. Unless it is a strictly defined domain-specific language of limited power (and even then, doubt they'll nail it...), some kid can't design a useful new language.


There is no mystical magical perfect language out there that can be made by a single kid who still has diaper marks except out of infinitesimally small chance of pure luck.

What's wrong with being 20 years old? Are you annoyed to still not have accomplished much in your 30's/40's? Many of the hits in any arena of technology, indeed anything really, are done by young people who have a "fresh" look on things. For a recent example, see Coffeescript, which is used by many, and was created after the designer read the book, Create Your Own Programming Language.

Making a programming language isn't rocket science, and it's a tremendously valuable learning experience. Stop being such a twat about it.

ghost.py is a webkit web client written in python by qiememin Python

[–]Thirsteh 2 points3 points ago

This is nothing new, and is a pretty unfair attack against ghost.py. People have been doing what you describe with Selenium for ages.

ACTA is dead - liberal block in the EU by Thirstehin ACTA

[–]Thirsteh[S] 2 points3 points ago

I admit I'm a little wary too. I probably shouldn't have used the article's title.

"ACTA sure to be delayed" is probably more accurate!

My 12 year old nephew got in trouble for arguing in Sunday school today. The lesson was "God created the earth, and evolution doesn't make sense". by Strawberry_Poptartin atheism

[–]Thirsteh 0 points1 point ago

The burden of proof is on Kamigawa since he's making such a retardedly broad claim. It is completely realistic that a child can have a fulfilling educational experience, and a sucessful social life, whilst being home-schooled.

Would I say home-schooling is always successful? No. Often, at least? No. But is it ALWAYS bad? No. I know several very, very successful people who were home-schooled, and I know a lot of unemployed drug addicts who went to public school.

Saddest thing I've ever seen. by BioRainin videos

[–]Thirsteh 0 points1 point ago

This is a rip of the real (and higher quality) video which has this description:

Pro Infirmis conducts an experiment: there are only a few people who don't have empathy with disabled people. Nevertheless, the passenger seat in the public bus next to Fabian often stays empty. Handicapped people are a regular part of our society.

Armin Rigo thinks he can use STM to kill the GIL on CPytho by gthankin Python

[–]Thirsteh 1 point2 points ago

I love Twisted with inline callbacks as much as the next guy, but that is just pure gibberish. Of course it is. It's hardly ever as easy as it should be, though.

Armin Rigo thinks he can use STM to kill the GIL on CPytho by gthankin Python

[–]Thirsteh 0 points1 point ago*

You're right, but that's because Go doesn't really follow the OOP paradigm that you describe -- at least it's not idiomatic. It sounds like what you really want to do is define an interface, and provide types that satisfy that interface. That way, you could do something like this (example from sort package):

// A type, typically a collection, that satisfies sort.Interface can be                                                                                
// sorted by the routines in this package.  The methods require that the                                                                               
// elements of the collection be enumerated by an integer index.                                                                                       
type Interface interface {
        // Len is the number of elements in the collection.                                                                                            
        Len() int
        // Less returns whether the element with index i should sort                                                                                   
        // before the element with index j.                                                                                                            
        Less(i, j int) bool
        // Swap swaps the elements with indexes i and j.                                                                                               
        Swap(i, j int)
}

type Grams int

func (g Grams) String() string { return fmt.Sprintf("%dg", int(g)) }

type Organ struct {
        Name   string
        Weight Grams
}

type Organs []*Organ

func (s Organs) Len() int      { return len(s) }
func (s Organs) Swap(i, j int) { s[i], s[j] = s[j], s[i] }

// ByName implements sort.Interface by providing Less and using the Len and                                                                            
// Swap methods of the embedded Organs value.                                                                                                          
type ByName struct{ Organs }

func (s ByName) Less(i, j int) bool { return s.Organs[i].Name < s.Organs[j].Name }

// ByWeight implements sort.Interface by providing Less and using the Len and                                                                          
// Swap methods of the embedded Organs value.                                                                                                          
type ByWeight struct{ Organs }

func (s ByWeight) Less(i, j int) bool { return s.Organs[i].Weight < s.Organs[j].Weight }

From the Go FAQ:

Is Go an object-oriented language?

Yes and no. Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy. The concept of “interface” in Go provides a different approach that we believe is easy to use and in some ways more general. There are also ways to embed types in other types to provide something analogous—but not identical—to subclassing. Moreover, methods in Go are more general than in C++ or Java: they can be defined for any sort of data, even built-in types such as plain, “unboxed” integers. They are not restricted to structs (classes).

Also, the lack of type hierarchy makes “objects” in Go feel much more lightweight than in languages such as C++ or Java.

Could you provide an example of what you are doing? Perhaps I could suggest a more "Go-like" approach?

Edit: Added sort.Interface for clarification.

Armin Rigo thinks he can use STM to kill the GIL on CPytho by gthankin Python

[–]Thirsteh 0 points1 point ago

It also wouldn't be 400-20 %, but 400%-20%, but you get my drift.

view more: next