Java is a statically typed language which couldn't care less for type safety



  • @FrostCat said:

    Cars have computers in 'em, though.
    Yes, they do.



  • Using existing hardware platforms to integrate python into your dashboard

    http://blogsdir.cms.rrcdn.com/8/files/2013/03/snake-on-a-car.jpg



  • @Gaska said:

    Are you complaining about MS propertiary solution depending on other MS propertiary solutions? Do you complain about Ford cars not working with non-Ford parts too?

    Jump into the Java world. Or pretty much anything non-MS, even the propietary world, and you'll see that they all work with stuff like LDAP without asking for "insert propietary brand here" specific implementations. As an example, IBM's Security Access Manager for Web works perfectly with Sun's DSEE and other LDAP servers. You don't need to use IBM's own LDAP.

    MS does seem to be an outlier in that sense.



  • @Maciejasjmj said:

    >Using existing hardware platforms to integrate python into your dashboard

    http://blogsdir.cms.rrcdn.com/8/files/2013/03/snake-on-a-car.jpg


    You made my day! But can I integrate a Cobra?


  • Banned

    That's not because MS is evil, but because Sun was awesome. Thinking little of someone because he doesn't donate to charity is back-asswards.



  • @Gaska said:

    That's not because MS is evil, but because Sun was awesome. Thinking little of someone because he doesn't donate to charity is back-asswards.

    Sure, Sun was awesome, but they aren't the only ones that have brand-agnostic integration. IBM, Oracle (even their pre-Sun acquisition stuff), BEA (pre-Oracle) ... pretty much everything I've seen is easily integrated. The sole exception being MS, which can be done but you have to roll out your own stuff.


  • Banned

    @danixdefcon5 said:

    Sure, Sun was awesome, but they aren't the only ones that have brand-agnostic integration. IBM, Oracle (even their pre-Sun acquisition stuff), BEA (pre-Oracle) ... pretty much everything I've seen is easily integrated. The sole exception being MS, which can be done but you have to roll out your own stuff.



  • or as every single edition of borderlands so far has done: make 3+ loot colors indistinguishable to someone who is red-green colour blind and not noting the quality of the item anywhere but the color forcing me to help determing loot colors for him.

    Gearbox added a color-blind mode to Borderlands 2 via patch; when turned on, in addition to adjusting the colors to be more friendly, it adds the rarity in text. Said mode was in The Pre-Sequel! at launch.


  • FoxDev

    this i shall have to tell my friend. it should please him greatly



  • Considering each gun has its stats and financial cost right there on the screen, and there's no auctionhouse or other MMO features, is the rarity in Borderlands games really even that important?


  • FoxDev

    it's a shorthand for the quality of the gun, also it's used for several missions or achievements

    since you have very limited backpack space being able to ignore the low quality loot quickly is a help.



  • I just look at the dollar value when determining what to take and what to leave.

    Note: I'm not saying that Borderlands shouldn't be friendly to people with color-blindness, I'm just saying it shouldn't make that much of an impact to game play, considering the mechanics of the game.

    Every game should be accessible to everybody.



  • What about, say, something like Zelda: Skyward Sword?

    I remember a big heated discussion when this came out started by this guy who was disabled, could use the Classic Controller with Twilight Princess, but because the big shtick for Skyward Sword was 'you swordfight with the Wiimote as a sword', he was disgruntled because he couldn't play it.

    Are you saying that developers should cater to everyone? Because then you're guaranteeing catering for the lowest common denominator...



  • @tarunik said:

    Yeah, TIL; sadly, it'll mean that the JVM will never have a properly statically typed language.

    The JVM already has Scala.
    Scala has specialisation:
    http://www.scala-notes.org/2011/04/specializing-for-primitive-types/

    @Bulb said:

    @Gaska said:
    - horrendous metaprogramming facilities (preprocessor and templates)

    Compared to none at all in most other programming languages including Java and C#.

    Newsflash: Java has metaprogramming facilities through annotation processing since JDK1.5!

    (Also AOP-extensions like AspectJ are quite popular in the Java world).



  • @Arantor said:

    What about, say, something like Zelda: Skyward Sword?

    I don't play shitty Nintendo games.

    I played Zelda II and it was the best and they can never top it so fuck everything.

    @Arantor said:

    Are you saying that developers should cater to everyone?

    Cater to? No. That's not even possible.

    They should make products accessible to everyone, though.

    This is one of those things called an "ideal" that people have a lot of trouble with on this board. So please look up the word "ideal" before replying, ok? Because I don't want to have the same discussion for the thousandth time.


  • Banned

    @blakeyrat, does making a game where main selling point is swinging a controller to fight with sword accessible to people who can't swing a controller make any sense?



  • Sure, why wouldn't it?

    I'm sorry, did someone hold a gun to the developers and say, "the selling point of this game is sword swinging, so if you even THINK about putting in an alternative control scheme, I will blow your fucking heads off?"

    Although it was developed in Japan, so probably that exact thing happened.


  • Banned

    I think you don't understand how hard it is to make two drastically different control schemes that are both enjoyable and provide the same level of challenge. Difference between keyboard+mouse and gamepad is like between a car and motorbike. Difference between gamepad and Wiimote is like between motorbike and spaceship.

    And remember that average game programmer salary is lowest of all programmers.



  • Uhhh ...
    The GCN version had working controls. You can map the buttons of the GameCube controller 1:1 to the classic controller and even have a button left.
    Who knows why they didn't port it over. Maybe because people wanting to play with a controller could just get the GCN version (GCN disks work on the Wii).


  • Discourse touched me in a no-no place

    @blakeyrat said:

    is the rarity in Borderlands games really even that important?

    One of the optional missions in the Pre-Sequel requires you to donate 50 low-quality guns (with higher-quality ones being unacceptable). Also, it really helps knowing the general quality level when using the Grinder.

    But other than being a critical mechanic of the loot system, nah, it's not important…



  • @Gaska said:

    I think you don't understand how hard it is to make two drastically different control schemes that are both enjoyable and provide the same level of challenge.

    I don't think you understand what the word "should" means. I also think that, despite my specific advice, you didn't look up the word "ideal" in a dictionary.

    Therefore, I'm out. I'm not going to have the Same. Fucking. Discussion. for the 34 millionth time because you idiots don't understand the meaning of simple words.


  • Discourse touched me in a no-no place

    @FuckOffBob said:

    (Also AOP-extensions like AspectJ are quite popular in the Java world).

    Doing transactions right in Java without AOP is a PITA. Doing them right with AOP is a cinch.



  • Skyward Sword, not Twilight Princess.

    Also, they got rid of the backwards compatibility with the GameCube with a revision of the Wii (quite a bit before the Wii Mini) so not all Wiis have GC capabilities.



  • ... Well, I accidentally read TP which was during the GCN compatible time.

    Although, complaining about lack of classic controller support when SS came is kind of late. Nintendo pretty much showed that they don't acknowledge the classic controller as a viable way to play their games before that already, like with New Super Mario Bros. Wii, for example.


  • Banned

    @blakeyrat said:

    I don't think you understand what the word "should" means.

    Usually it means "if they didn't do it then they did a shitty job".

    @blakeyrat said:

    I also think that, despite my specific advice, you didn't look up the word "ideal" in a dictionary.

    Ideal is something perfect. Your proposal cannot be ideal because there is no way to make it perfectly. It's plain impossible. I could make a mathematical proof of nonexistence of solution to the problem stated if I had more time.



  • Carried away in the summers but 2 RT ought to develop easily the best candy bars.



  • @aliceif said:

    Uhhh ...
    The GCN version had working controls. You can map the buttons of the GameCube controller 1:1 to the classic controller and even have a button left.
    Who knows why they didn't port it over. Maybe because people wanting to play with a controller could just get the GCN version (GCN disks work on the Wii).

    Firstly, I wasn't aware Skyward Sword appeared on the GameCube (Twilight Princess did, Skyward Sword didn't) and secondly... GCN discs work on the Wii provided it's not a newer Wii; Nintendo removed that functionality around October 2011 though I forget exactly what the deal was. I don't have any GCN discs so it wasn't a concern for me.



  • @Arantor said:

    removed that functionality

    Well, hardware-side because the new ones didn't have the connectors for it.
    There are three generations: The original big Wii, the slightly more compact one and the Wii mini. The first of these can do GCN, the rest don't.



  • @FuckOffBob said:

    Newsflash: Java has metaprogramming facilities through annotation processing since JDK1.5!

    The annotations can do some, but for actual metaprogramming you need to write the annotation processor and I wouldn't call that simple or convenient.

    @FuckOffBob said:

    (Also AOP-extensions like AspectJ are quite popular in the Java world).

    That's a preprocessor for Java, not Java itself. And it can't really do any templatey stuff.


  • Discourse touched me in a no-no place

    @Bulb said:

    The annotations can do some, but for actual metaprogramming you need to write the annotation processor and I wouldn't call that simple or convenient.

    It's not quite as necessary to do a lot of metaprogramming in Java; it's self-introspection is better than C++'s was traditionally, and Java's got a single-rooted class hierarchy.
    @Bulb said:
    That's a preprocessor for Java, not Java itself. And it can't really do any templatey stuff.

    There are several sorts of preprocessors for Java. The interesting ones are called Load-Time Weavers, and they do code generation when a class is loaded, which can be at pretty much any point in the program. This can allow them to do things like changing field accesses into method calls, etc. It's used a lot in things like ORMs, but it is a general facility that I've hardly touched (since I didn't need it beyond basic things like targeting annotations).


  • ♿ (Parody)

    @Gaska said:

    Ideal is something perfect. Your proposal cannot be ideal because there is no way to make it perfectly. It's plain impossible. I could make a mathematical proof of nonexistence of solution to the problem stated if I had more time.

    You must be new here. Ideal means whatever blakeyrat thinks is Right. It doesn't have to be a good idea or consistent, even with itself.


  • Banned

    @boomzilla said:

    You must be new here.

    I'm not. I just enjoy arguing with random number generators I encounter on various internets.



  • @Remy said:

    The result is a terrible compromise. At the very least, they should have never added lambdas, without fixing that. The result is a "me too" feature that doesn't work.

    So I went off and read this whole article on lambdas in Java, and it's still not clear to me what's so uniquely terrible about them.

    Is this something I'd actually have to know more about Java to understand, or...?


  • ♿ (Parody)

    @tar said:

    Is this something I'd actually have to know more about Java to understand, or...?

    It mostly seems like a bit of syntactic sugar compared to the "old" way of doing it, where you'd make a little class that implemented the code you wanted to pass. I guess there may be some advantages with some of the scoping rules. And since it's java, certainly some gotchas that you won't find out about until later.

    This seems like it's mostly a benefit to the sort of hipster coder who gets really indignant about clean, organized code at the expense of a bit of boilerplate.


  • FoxDev

    Hipster or not, when you get used to using lambdas, you never want to go back 😛

    Disclaimer: Never used Java lambdas, but I use C# lambdas a lot



  • I'm not particularly averse to lambdas per se, just wondering what Java did that screwed the pooch...


  • ♿ (Parody)

    I'm sure you're right. It's a lot easier to pick up a bad habit than to drop it.


  • ♿ (Parody)

    Looking back, @Remy was BITCHing about type erasure, not lambdas.



  • Sure, type erasure looks like a whole pile of do not want, but he seemed to be implying there was something about lambdas specifically which interacted badly with it.

    Either that, or shoulder aliens, anyway...


  • ♿ (Parody)

    Yeah, I can't answer that. Type erasure is one of those things that bugs me a lot in theory but hasn't really been a problem in practice. :shrug:


  • FoxDev

    So I just familiarised myself with Java's type erasure; was amused by this line:

    Type erasure ensures that no new classes are created for parameterized types; consequently, generics incur no runtime overhead.

    C# (and .NET in general) manages no noticeable runtime overhead with its generics, and it doesn't do type erasure (I don't think it does, anyway)


  • ♿ (Parody)

    @RaceProUK said:

    was amused by this line:

    I can't explain that line, either. Where did you read it? Fox News?


  • FoxDev

    @boomzilla said:

    I can't explain that line, either. Where did you read it? Fox News?

    :rolleyes:



  • @RaceProUK said:

    So I just familiarised myself with Java's type erasure; was amused by this line:

    It's also... I don't know about wrong, but it's pretty misleading. By that definition of overhead, .Net generics usually manage negative overhead ("underhead"?) because those duplicated classes mean it can eliminate downcasts.



  • @tarunik said:

    C++11 implemented that as well (enums as actual types, not as specializations of int, use enum struct or enum class to get at this).

    The single biggest problem I have with enum class is that if you try to use it, you suddenly have to prefix all your enum constants with the classname, which is a gratuitous and unneccesary change from the way that normal enums work.

    I have literally no idea why they felt this was a desirable feature in a language which already has namespaces for disambiguating names. (Unless they were just mindlessly importing Java/C# features because, you know, if a language has more features it must be better...)



  • @RaceProUK said:

    C# (and .NET in general) manages no noticeable runtime overhead with its generics, and it doesn't do type erasure (I don't think it does, anyway)

    Yeah -- .NET uses type reification instead.

    @tar said:

    The single biggest problem I have with enum class is that if you try to use it, you suddenly have to prefix all your enum constants with the classname, which is a gratuitous and unneccesary change from the way that normal enums work.

    I have literally no idea why they felt this was a desirable feature in a language which already has namespaces for disambiguating names. (Unless they were just mindlessly importing Java/C# features because, you know, if a language has more features it must be better...)

    It's because that a "real" type (struct, class, union) introduces a scope in C++ ;) So to save people even more astonishment, they went with the route they did vs. making enum class enumerators appear in the surrounding scope



  • @tarunik said:

    It's because that a "real" type (struct, class, union) introduces a scope in C++ ;) So to save <abbr title="mostly compiler writers">people</abbr> even more astonishment, they went with the route they did vs. making enum class enumerators appear in the surrounding scope

    The frustrating thing is that the other differences between enum classes and enums are reasonably good and useful to have.

    Then again, I suppose it wouldn't be a real new C++ standard if it didn't introduce at least one asinine new feature into the lanaguage (looking at you, export...)



  • My wish is that you could say using namespace SomeClass; or something and bring static members of that class into scope, the same way you can with a namespace. That to me would be the ideal situation; I rather prefer the "enum members under the enum type" thing and think it makes the most sense, but you would still be able to use the names unqualified if you wanted.



  • @Magus said:

    Then use Nemerle?

    EDIT: On reading this tutorial, I have come to realize that I really want to use this language. Marking a class as serializeable with an attribute can actually apply the macro to it at compile time...

    Join us! There's a whole topic for this!



  • @boomzilla said:

    I'm sure you're right. It's a lot easier to pick up a bad habit than to drop it.

    Object-Oriented Programming, for example. It's amazing how hooked the profession still is on OOP, and how so many still don't understand it. We still have seminars to explain to long-timers how to do dependency injection. And when people go to do it, they fuck it up.

    That's what scares me about Functional Programming entering the mainstream. Not the paradigm itself, which has some really good ideas, but how people are going to contort it into a fucked up mess and produce code that haunts me in my dreams.


Log in to reply