Where My Head Is At: The Perverse Invasion

i dunno if 'perverse invasion' is really indicative of how we plan on storming the world, but here's a funny story. i was talking to one of our devs (tj) along the lines of possible competitors coming up. he pointed me to a job opening for a new mmog played in a browser that uses a java engine.

first of all, it's java. java blows in a browser. any of you out there building java games — you're wasting your time. build it in flash instead. higher penetration. faster dev environment. and, you can do anything you need to do without using java. the only people really allowed any leeway here are those poor bastards having to port a c++ standalone game to a demo on the web.

i'll say this right here, nice and loud: java sucks. i know it. you know it. the only people howling about it are the idiots who wasted years of their life mastering it and hiring those who mastered it.

anyway.

in this explaining to him how that really wasn't any different than a standalone, downloadable version of the game (or at best just one order of magnatude different — it's missing the actual install process) i threw out the 'we are going for pervasive, not instanced, gameplay.'

that's when tj said: perverse invasion?

yeah. kinda.

we're squeezing into all of the smallest parts of people's lives. from checking in on their challenge history from their mobile device to training your character in the same 'temporal space' as you check your email. time spent playing the actual game doesn't necessarily make your character any more powerful. maybe some time researching skill trees or strategizing could give the hardcore's the edge, but that's about it.

noobs are protected. casuals can power level too. hardcores can min-max their way to godlieness.

it's really just about living in this easy-to-check alternate life as it crossfades through your own real life. intertwine that with the business model we're planning and you guys can get a pretty in-depth glimpse of whwere my head is living these days.

m3mnoch.

Advertisements

26 comments so far

  1. Andrew Wooldridge on

    It would be very interesting to also have a version of the UI that was viewable via devices like the PSP.

  2. lotsa on

    Sounds like someone woke up on the wrong side of the bed, ‘…java sucks. i know it. you know it. the only people howling about it are the idiots who wasted years of their life mastering it and hiring those who mastered it’

    I would be interested to hear why java sucks.

  3. Tide on

    “java sucks”. Thank you. Thank you for saying what so many of us having been muttering about for years.

    (long time lurker, first time poster). GL BTW, hope you guys kick it.

  4. lotsa on

    What is with all of the java hate?

    Tide, or m3mnoch would you care to elaborate as to why ‘java sucks’?

  5. m3mnoch on

    why does java suck? that’s easy.

    c++ is hard, but speedy.

    visual basic is easy, but slow.

    java is hard AND slow.

    now, if we’d actually achieved the holy grail of “write once, run everywhere” it’d be a different story now. instead, we have this bloated memory hog that half-asses cross-platform compatibility just enough to make it worth while to port it anyway just to be sure it actually works.

    no. java is terrible. it’s a blight on the planet earth — well. maybe not a blight, but it IS pretty crappy.

    now, c#? sexy AND fast. mmmm… c#….

    m3mnoch.

  6. m3mnoch on

    oh. and, i almost forgot. there’s always this illustrious piece of literature that made the rounds a while ago.

    http://www.internalmemos.com/memos/memodetails.php?memo_id=1321

    m3mnoch.

  7. lotsa on

    I will not argue that java is slower than C++ (given the extra layer of overhead), but I will argue that java is slow. What constitutes slow? Given a large enough (business enterprise) application [or any decent sized application – I’m not talking Hello World] I guarantee you will not notice a difference.

    If you are a good enough developer, then the language really doesn’t matter. How many java applications have you seen with memory leaks? Not many. I for one would rather an application that runs [marginally] slower than one that runs out of memory.

    Everyone is entitled to their opinions, but to say that java is ‘terrible’, ‘crappy’, etc. without stating anything more than slow is just ridiculous. It sounds as if you have already written off the java language without really learning the language, and for that I am sorry.

    I’m not trying to say that java is the greatest language, because clearly there are faults. All I am trying to say is that each language has its pros and cons. Use whatever language suits your needs, but don’t crush on a language without actually writing something significant.

  8. m3mnoch on

    that’s the point tho. slow is fine with an easy to use language. slow is not fine with a hard-to-wrangle language.

    that’s your metric — your yardstick, if you will of what slow is.

    what are the benefits of using java?

    fastest? nope.
    easiest? nope.
    most portable? nope.

    then, why would you ever use it except to say that ‘dude! i built an application in java!’ why do you think there are so many damn java text editors?

    it’s all about the right tool for the job. you can’t get by with a half-ass language. sure, you can play or poke, but it doesn’t hit any of the 3 legs of the magic business triangle.

    1) it’s not cheaper.
    2) it’s not faster.
    3) it’s not higher quality.

    m3mnoch.

  9. Andrew on

    That’s hardly a job opening, as it seems unlikely that anyone is going to be paid. Not only are the design specifications vague beyond words, but the poster is working from a hotmail account. Bad signs all around.

    And with regards to Java, it’s what is being taught in High Schools and Universities these days, so it’s hardly going to go away any time soon, and it has its benefits as a learning language (and business app development language, due to this fact). Also, it’s not that hard to transition from Java to other programming languages, as long as it’s used to teach good programming pracitices (arguably easier to do in Java, since it’s 100% object oriented).

  10. lotsa on

    I will argue that Java fits nicely into the business triangle.

    1) Cheaper – How much do you pay for java? [Free]
    2) You will not notice a difference unless you have poor developers, and even then you can have poor developers in any language.
    3) What are we basing this against?

    Neither you or I can really tell that Java is slow – so the slow argument doesn’t really work to well.

  11. Voorshwa on

    Lotsa,

    Did you even read that link with the Sun memo? Their own people are making points 1, 2, and 3, and telling them to fix it . C’mon man, at least try to keep up.

    V

  12. m3mnoch on

    1) the key part of this is the suffix -er. almost all languages are free. so, that’s not a differentiator for java. now, if someone paid me to use java, you can bet i would.

    2) an equally skilled c++ developer and an equally skilled java developer building the same app — the java application will be slower. always and forever. it’s that whole jvm/jit crap.

    3) almost any language produces higher quality software. (again, equal programming skill) from bare scripting languages with a bulletproof framework underneath to higher level languages with rich apis already built. “damn. you have version 1.4 or the jre? that breaks the software. you need to install 1.3.” i mean seriously, how bloated does my virtual machine directory have to be? why isn’t all java software backwards compatible? that’s right. it all depends on someone elses implementation of the jre on any particular platform. i can run any flash 2.0 apps with my latest uber flash mx runtime.

    the problem stems from java trying to be all things to all platforms to all developers. it ends up being this “universal” tool that is never the right one for the job because there’s always some other language that’s faster, easier and produces less scary, environment-dependent software.

    m3mnoch.

  13. lotsa on

    The key point that I am trying to make is that you will not be able to tell that a java program is slower than that same program in another language [again we are not talking Hello World].

    Also, I guarantee that if I develop a program on a windows box and I give it to you to run on a mac; the program will run.

    Which language would you use to develop a web based business enterprise system?

    Voorshwa,

    Thanks for your insight, but two things here. 1) did you actually read the memo?, and 2) I am not saying that java doesn’t have its faults because every language has its faults.

    Now please go back to your hole, fill out your TPS report and come back when you can think of something useful to say.

    And to go off topic, JavaScript rules.

  14. m3mnoch on

    personally, since i don’t have time to build my own home-rolled web server like google or yahoo, i’d build it in asp.net. just like, i dunno, myspace, ebay, msn, etc. have done.

    how many sites in the top 20 (i’m sure it goes further, but i just don’t have the stamina nor the want to check more.) do you think run java? that’s right. none. know why? it’s slow.

    altho, sun.com is number 306 in traffic. they are probably the biggest site on a java platform. what’s alexa say about them? hmmm.

    “Speed: Very Slow (94% of sites are faster), Avg Load Time: 6.9 Seconds”
    http://www.alexa.com/data/details/main?q=sun.com&url=sun.com

    /yawn

    m3mnoch.

  15. Voorshwa on

    Lotsa,

    So your rebuttal to my minor disappointment in your posts was to 1) Repeat exactly what I asked you, 2) Surrender your point with an adolescent ‘well my stuff is bad, but I bet your stuff is bad too’, 3) Try to be whitty with an over used, outdated, pop culture movie quote.

    But, hey, I just got done with that report title page so I thought I would point out some things to you from this thread alone.

    1) Sun’s own people in an internal memo pointed out the countless flaws in Java, and how time and again Java wasn’t chosen for the project. Not even in their own projects.

    Your Response: You responded with a question.

    2) You rag on people for putting down Java and to not say anything unless it is significant. People then respond with rather significant responses and actual facts.

    Your Response: “And to go off topic, JavaScript rules.”

    3) You then toss in this little gem
    “Also, I guarantee that if I develop a program on a windows box and I give it to you to run on a mac; the program will run.”

    Which if you would have paid attention to the facts presented to you, you would have known this wasn’t the case. Because if I don’t have the exact same run-time on that Mac as I do the Windows machine I developed on….BOOM. Back to development.

    So, in closing, you have done more to hurt your argument than help it. At least that’s my opinion.

    V

  16. lotsa on

    m3mnoch in response to your comments I decided to go to ebay to find out what technologies they are using. Right off their homepage they have a “Java technology/Powered by Sun” graphic. I’m not really sure where that fits into your argument, but I thought you would be interested. [maybe next time you shouldn’t be so tired when posting?]

    V-

    You are wrong on so many fronts.

    In reading the first paragraph of the provided link you will see that a) they are talking about the Solaris implementation and b) it states that the issues presented are not inherent to Java but ‘but instead represent implementation oversights and inconsistencies common to projects which do not communicate effectively with partners and users.’ So again I ask you, did you read the article.

    I have no idea where you are coming from when you say that my point was adolescent in nature; as I have clearly stated from the beginning that Java is not the end all be all language (it has faults, as every language does). The only reason I even started posting was in response to the statement that “java sucks” and “the only people howling about it are the idiots who wasted years of their life mastering it and hiring those who mastered it.”

    ‘Try to be whitty with an over used, outdated, pop culture movie quote.’ Don’t get all upset it was all in good humor since some of us are getting a little agitated with this little discussion.

    In response to…
    1) See above.
    2) As you have quoted that was an off topic statement not relevant to anything discussed; so quoting me there makes no sense.
    3) You are wrong. I can develop a [significant] program that will never encounter those problems.

    Before coming back and responding, please take some time to understand at least something about the java language [you won’t look as silly when commenting on a java discussion].

  17. m3mnoch on

    dude. that’s hillarious! as recent as may 1, netcraft says they use iis on windows:
    http://uptime.netcraft.com/up/graph?site=ebay.com

    hahahahahahah….

    ebay to the public: “uh. yeah. we’re all about sun solaris! microsoft is evil! we’re trendy too!”

    ebay to bill gates: “whew. thanks for keeping our server up. that java shit crashed all the time.”

    maybe they’re running sun boxes back in the supply closet to manage the toilet paper?

    …whew. damn that’s funny.

    m3mnoch.

  18. m3mnoch on

    oh. forgot. here’s a thing from 2001 announcing their partnership with .net.

    http://www.microsoft.com/presspass/press/2001/mar01/03-12ebaypr.mspx

    m3mnoch.

  19. lotsa on

    Interesting…

    I would like to see when ebay had added the “java tech…” to their webpage.

    Some where between April 1, 2005 and May 2, 2006 they made the ‘switch’ to java. I would be interested to know when the switch took place.

    April 1, 2005: http://web.archive.org/web/20050331083725/www.ebay.com/

    May 2, 2006: http://72.14.203.104/search?q=cache:JoGVAw8oOPIJ:www.ebay.com/+&hl=en&gl=us&ct=clnk&cd=1

    Maybe java isn’t as bad as you make it out to be; just maybe?

  20. lotsa on

    Just in case it hasn’t been clear…

    All I am trying to say is Java isn’t as bad as was portrayed. I am not trying to say that any other language is bad.

    I think that should be obvious from all of my statements; if not, the point is being reiterated.

  21. m3mnoch on

    hmmm. ah. i bet that’s why. you’re comment was in moderation mode. i bet it was for the 2 links in it.

    dumb spam catching crap.

    m3mnoch.

  22. nihill on

    Alright, I might just chime in here. This is in regards to the memo from sun about java that would at least make me quite concerned about using java for a “significant” application. I know that you and ‘V’ have gone back and forth, so I figured I’d browse out there and see what I could find. I will agree with you, the first few paragraphs talk about java being fine, but if you read down through the rest of the memo, it really sounds more like lip service to me. Take a look at this:

    We all agree that the Java language offers many advantages over the alternatives. We would generally prefer to deploy our applications in Java but the implementation provided for Solaris is inadequate to the task of producing supportable and reliable products.

    They go on to talk about bugs not being fixed and support being one of their biggest concerns. As someone who supports enterprise level software for a living, I can tell you the level of service that they are talking about is terrible. Unless the person who wrote this article is lying, I would never use java to write anything at an enterprise level. He says that:

    We would generally prefer to deploy our applications in Java but the implementation provided for Solaris is inadequate to the task of producing supportable and reliable products.
    Our experience in filing bugs against Java has been to see them rapidly closed as “will not fix”. 22% of accepted non-duplicate bugs against base Java are closed in this way as opposed to 7% for C++.

    This means that over one out of five issues that Java support admits is a bug they will not or are not able to do anything about. Maybe it’s because I have perspective from the other side, but if one out of every five bugs that I reported weren’t touched by my company I am 100% sure that the product I work with would not be even remotely successful.

    Alright, next section. The support really doesn’t have a lot to do with size or speed, but because it’s near and dear to my heart I wanted to throw that out there. In this next quote, the bold text is ’emphasis mine’. I think it says it all.

    2. The JRE is very large.
    The JRE is significantly larger than comparable runtime environments when considering resident set size (memory dedicated to this specific program). It has been seen to grow to as much as 900M. This has a drastic effect on both performance and resource usage. It also means that multiple JREs present critical resource constraints on the servers for such thin-client systems as SunRays. Typical resident set requirements for Java2 programs include:

    Hello World 9M
    SMC Server 38M
    SLVM GUI 60M
    Component Manager 160M
    TogetherJ 300 – 900M

    So that worries me a bit. Let’s see what else we can find. the writer of this memo talks about the amount of time it takes TogetherJ to load and is concerned about performance. He says that he does not have the resources to compare it with other languages, and then points out a few existing studies:

    A study performed by an outside team appears to indicate a rough parity in performance between Java and a common implementation of another OO language called Python (see IEEE Computing, October 2000, “An Empirical Comparison of Seven Programming Languages” by Lutz Prechelt of the University of Karlsruhe). Both platforms are Object Oriented, support web applications, serialization, internet connections and native interfaces. The key difference is that Python is a scripting language. This means there is no compilation to byte code so the Python runtime environment has to do two things in addition to what the Java runtime environment does. It has to perform syntax checks and it must parse the ascii text provided by the programmer. Both of those tasks are performed at compile time by Java and so that capability does not have to be in the JRE.
    Given this data, it appears that the JRE can actually be simpler than the Python RE since Java does at least some of this work at compile time. The example above of “Hello World” is a good method for getting an idea of the minimum support code required at runtime. This support code includes garbage collector, byte code interpreter, exception processor and the like. Hello World written in Java2 requires 9M for this most basic support infrastructure. By comparison, this is slightly larger than automountd on Solaris8. The Python runtime required to execute Hello World is roughly 1.6M.

    So maybe I’m not understanding everything there, but it sure sounds to me like he’s saying Java should be simpler and faster than Python because it is able to handle the syntax checks and parse the ASCII at compile time. Unfortunately (for Java) it it still larger than Python. Now, I know you specifically said that as long as we’re not talking a “Hello World” program java is just as good as any other language:

    Given a large enough (business enterprise) application [or any decent sized application – I’m not talking Hello World] I guarantee you will not notice a difference.

    Unfortunately the next line seems to address that as well. Again, bold text == emphasis mine.

    Further examples of what is possible include the compiling OO languages Eiffel and Sather which fit their garbage collector, exception processor and other infrastructure into roughly 400K of resident set. While the Java VM (as demonstrated above) grows rapidly as more complex code is executed , the Python VM grows quite slowly. Indeed, an inventory control program written entirely in Python having a SQL database, a curses UI, and network connectivity requires only 1.7M of resident set. This seems to indicate that the resident set requirements of the JRE could be reduced by at least 80%.

    Whew. Not looking good for Java… These are just some other random quotes that seem to support the, “Java is slow” statement.

    – Slow start up times prevents Java applications from being started while Solaris is booting up and during mini-root time. This requires applications which are written in Java to have some kind of mechanism to start-up after the OS has been fully started.

    These libraries should be commercial implementations and must be in native platform code (ie not Java or Perl). Native code is a requirement because one of the core requirements for the proxy is for minimum impact on the target host. Java has too large a footprint (both memory and disk image) and may not be installed on the customer’s host.

    While this project did not provide a measurement of resident set for their CLI, the minimum RSS for the JVM is known to be 9MB and the typical RSS for a similar Java program is 30 to 40MB, and takes up to 15 seconds to start. The project team admitted in the review that this CLI may be used on a daily basis. For such a CLI, the delays and resource requirements of the Solaris Java implementation are unacceptable.

    Thanks,

    Nihill

  23. lotsa on

    We are really getting this party started!

    Before I say anything I want to thank you Nihill for bringing the article to my attention [again] and breaking down the points that you thought were the most derogatory.

    All joking aside I want to reiterate what [specifically] the memo is talking about.
    1) The Solaris implementation and
    2) Essentially poor implementations of the java language.

    *Also note that ALL languages have their problems (don’t believe me than search google and you will find similar memos, articles, reports, etc. for every language).

    Now then,

    About bugs not being fixed – no need repeating, but you will find bugs in every language. I guarantee that a) you will probably never encounter a bug, or b) there is another way to do what you are trying to accomplish.

    I wouldn’t worry too much about the time it takes TogetherJ [a UML modeling tool] to load. The end user will NEVER be impacted. This is for diagramming and there are many utilities out there.

  24. lotsa on

    Bullet 2 – should say ‘using’ instead of ‘of’.

    That statement could easily be misinterpreted by the onslaught of Java haters that this thread has spawned.

  25. Voorshwa on

    “Before I say anything I want to thank you Nihill for bringing the article to my attention [again] and breaking down the points that you thought were the most derogatory.”

    I would be very interested if you could enlighten us to any point in that article that wouldn’t be considered derogatory about java. Not baiting here, I am actually intrigued as to what you can find.

    Also, I don’t think it’s a matter of hating java, it’s a matter of realizing that java is (in my opinion) inferior to anything else I could use on a project. I have programmed in Java for large and small projects because I had no other option. Now that I look back on those projects I am so very glad that I have been exposed much faster, cleaner, more economic programming technologies. Again, these are my opinions based on personal experience.

    V

  26. goldstone on

    Everything in it’s right place, no?

    So far this year I’ve written applications for clients in C++, C, Visual Basic .NET, and many little web things with PHP and (some pretty hardcore) JS.

    I don’t get language hate. Use what works and what you like.


Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: