Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
salted hash browns
Mar 26, 2007
ykrop

rotor posted:

i havent really touched java in a while, but when i was, our product worked on the following java versions and only the following java versions:

1.4.0.1-3
1.4.0.5
1.4.0.8
1.4.1.0-i dont know 10 or so
1.4.1.12

my case was that there were these xml bugs that sort of came and went, sometimes the same ones, sometimes related ones. im sure other people had different issues.

rotor using java 1.4.x, old, etc

Adbot
ADBOT LOVES YOU

multigl
Nov 22, 2005

"Who's cool and has two thumbs? This guy!"

rotor posted:

say what you will about flash but you just dont see that kind of poo poo in the flash world. poo poo written literally over a decade ago still runs fine without modification.

java is the run anywhere but on java platform.

lamentable dustman
Apr 13, 2007

ðŸÂ†ðŸÂ†ðŸÂ†

I can't think of the last time I had a version issue with java. My local machine, and build machine and production all run different versions of 1.6 now that I think about it

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

salted hash browns posted:

rotor using java 1.4.x, old, etc

i released some open source stuff in 1.0.2 :q:

vapid cutlery
Apr 17, 2007

php:
<?
"it's george costanza" ?>
something about java also makes it mind-numbingly boring to write

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

vapid cutlery posted:

something about java also makes it mind-numbingly boring to write
Fart x = new SmellyFart();

CaptainMeatpants
Jun 1, 2010

i've never had to write java without android being involved so for all i know it could very well be a decent experience

etcetera08
Sep 11, 2008

the static keyword is the worst part of java

Meiwaku
Jan 10, 2011

Fun for the whole family!

etcetera08 posted:

the static keyword is the worst part of java

You can't spell "BeanFactoryFactory" without "static".

The JVM has a lot of value, but Java the language is pretty terrible unless you have a hard on for typing. Java's OO design patterns remind me of that socially awkward kid who kept all his Legos sorted in fishing tackle boxes.

Sapozhnik
Jan 2, 2005

Nap Ghost
i have a hardon for things being explicit

if u know what i mean

Shaggar
Apr 26, 2006
if you cant handle strict typing because you cant figure out auto complete you are the worst.

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Meiwaku posted:

You can't spell "BeanFactoryFactory" without "static".

The JVM has a lot of value, but Java the language is pretty terrible unless you have a hard on for typing. Java's OO design patterns remind me of that socially awkward kid who kept all his Legos sorted in fishing tackle boxes.
not even the good kind of typing where the computer does all the easy but boring bullshit (see Mirah) or where it's really useful (Scala), you just have to type lots of extra poo poo

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
types are a stupid concept

Max Facetime
Apr 18, 2009

Cocoa Crispies posted:

not even the good kind of typing where the computer does all the easy but boring bullshit (see Mirah)

that looks like it's just hiding stuff instead of doing the easy and boring stuff (i.e. documenting the code)

tef
May 30, 2004

-> some l-system crap ->

rotor posted:

say what you will about flash but you just dont see that kind of poo poo in the flash world. poo poo written literally over a decade ago still runs fine without modification.

like exploits :getin:

tef
May 30, 2004

-> some l-system crap ->

Shaggar posted:

if you cant handle strict typing because you cant figure out auto complete you are the worst.

software engineering at it's finest here folks: we create work so we can write more tools to solve it.

Shaggar
Apr 26, 2006
we create a solution to a problem (type safety) and then create tools to help us achieve it.

Max Facetime
Apr 18, 2009

Win8 Hetro Experie posted:

that looks like it's just hiding stuff instead of doing the easy and boring stuff (i.e. documenting the code)

like this stuff:

mirah posted:

import java.util.ArrayList

list = ArrayList.new
sb = StringBuffer.new("Hello")
sb.append(", world")
list.add(sb)
puts list

Note again that no types are actually declared here, and the types of ‘list’ and ‘sb’ are inferred from the results of constructing ArrayList and StringBuffer.

inferred by who? me?? i'd rather not infer stuff when writing code, if at all possible

Shaggar
Apr 26, 2006
no types are declared!except for ArrayList and StringBuffer

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Shaggar posted:

if you cant handle strict typing because you cant figure out auto complete you are the worst.

java doesn't have strict typing by any stretch

tef
May 30, 2004

-> some l-system crap ->
yep java is type safe alright

code:
String[] strings = new String[1];
Object[] objects = strings;
objects[0] = new Integer(1); // RUN-TIME FAILURE
and other bits http://twofoos.org/content/java-type-system-holes/

tef
May 30, 2004

-> some l-system crap ->

Shaggar posted:

we create a solution to a problem (type safety) and then create tools to help us achieve it.

*adds type inference to notepad.exe*

Max Facetime
Apr 18, 2009

and now that i'm actually inferring that piece of code it's borderline nonsense

who would use a List<StringBuffer> variable instead of List<String>? Nobody, but thanks to types being hidden the author never caught that stupid mistake

way to go showcasing the strengths of your own language :bravo:

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
hey let's all use CollectionTypes full of SpecificKindsOfObjects, that'll be way better than just having an array with things in it

Sapozhnik
Jan 2, 2005

Nap Ghost
Python: "Explicit is better than implicit!"

code:
def somefunc(butt):
    butt.poke()
Alright, so something called 'butt' is getting poked, what does this involve?

^Z
$ find -name "*.py" -exec grep poke {} +

(a bunch of poo poo that may or may not be relevant, repeat for every directory that contains Python code I might be pulling in)

alright, that was fun, let's try Java

code:
public static void someMethod(Butt butt) throws DoesntSwingThatWayException {
    butt.poke();
}
ok cool see how I can just Ctrl+click "poke" and go to a definition, see that it's in an interface, then select something from a context menu that lets me see what implements that interface? As well as having all the Javadocs and sources available at my fingertips thanks to the ownage that is Maven?

Also it shows me the ways in which poking a butt in this particular context can go horribly wrong, and either I deal with that situation or I explicitly declare that I am aware of it but just don't give a gently caress, in which case at least somebody does have to care. Also there are some other presumably-catastrophic things subclassing RuntimeException that I can care about if I want to, but probably can't do anything about in the general case.

I'll acknowledge that all of this extra clarifying guff may or may not be useful depending on the circumstances, sure. If I'm encoding business rules for some chair-throwing retard who completely changes his mind about the rules of the game every Tuesday and I can't resign from that shithole then sure I'll encode the FotW business rules in Lua or whatever instead, because it's going to be a godawful shifting heap of quicksand no matter what I do, but I can't really come around to this perspective that duck typing is the only way to go ever and that if I don't do it that way then I am obviously wrong for reasons that are far too trivial to even condescend to explaining. Yes, I can unit test the code instead of having a type checker, but I'd prefer to unit test slightly more complex interactions than that. "You should understand the code you're editing" is fine advice locally, but I shouldn't be expected to understand the global intricacies of a potentially huge codebase, that's what layers of abstraction are for.

Sneaking Mission
Nov 11, 2008

Mr Dog posted:

Python: "Explicit is better than implicit!"

code:
def somefunc(butt):
    butt.poke()
Alright, so something called 'butt' is getting poked, what does this involve?

^Z
$ find -name "*.py" -exec grep poke {} +

(a bunch of poo poo that may or may not be relevant, repeat for every directory that contains Python code I might be pulling in)

alright, that was fun, let's try Java

code:
public static void someMethod(Butt butt) throws DoesntSwingThatWayException {
    butt.poke();
}
ok cool see how I can just Ctrl+click "poke" and go to a definition, see that it's an interface, then select something from a context menu that lets me see what implements that interface? As well as having all the Javadocs and sources available at my fingertips thanks to the ownage that is Maven?

Also it shows me the ways in which poking a butt in this particular context can go horribly wrong, and either I deal with that situation or I explicitly declare that I am aware of it but just don't give a gently caress, in which case at least somebody does have to care. Also there are some other presumably-catastrophic things subclassing RuntimeException that I can care about if I want to, but probably can't do anything about in the general case.

I'll acknowledge that all of this extra clarifying guff may or may not be useful depending on the circumstances, sure. If I'm encoding business rules for some chair-throwing retard who completely changes his mind about the rules of the game every Tuesday and I can't resign from that shithole then sure I'll encode the FotW business rules in Lua or whatever instead, because it's going to be a godawful shifting heap of quicksand no matter what I do, but I can't really come around to this perspective that duck typing is the only way to go ever and that if I don't do it that way then I am obviously wrong for reasons that are far too trivial to even condescend to explaining. Yes, I can unit test the code instead of having a type checker, but I'd prefer to unit test slightly more complex interactions than that. "You should understand the code you're editing" is fine advice locally, but I shouldn't be expected to understand the global intricacies of a potentially huge codebase, that's what layers of abstraction are for.

this is a bad post and you should feel ashamed for having made it

multigl
Nov 22, 2005

"Who's cool and has two thumbs? This guy!"

Panic! At The cisco posted:

this is a bad post and you should feel ashamed for having made it

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
you've got to newly learn how a component works maybe 1/10th as often, in a worst-case scenario, as you have to write code that uses a component, and i would rather optimize for that case

MononcQc
May 29, 2007

Gazpacho posted:

how did a language with guy steele's name on it not have lambdas for 15 years smh

Steele helped write the spec, not design the language itself. He was brought on the team after the design, so I don't think he had a say in it.

tef
May 30, 2004

-> some l-system crap ->

Mr Dog posted:

Python: "Explicit is better than implicit!"

code:
def somefunc(butt):
    butt.poke()
Alright, so something called 'butt' is getting poked, what does this involve?

^Z
$ find -name "*.py" -exec grep poke {} +

(a bunch of poo poo that may or may not be relevant, repeat for every directory that contains Python code I might be pulling in)

alright, that was fun, let's try Java

code:
public static void someMethod(Butt butt) throws DoesntSwingThatWayException {
    butt.poke();
}
ok cool see how I can just Ctrl+click "poke" and go to a definition, see that it's in an interface, then select something from a context menu that lets me see what implements that interface? As well as having all the Javadocs and sources available at my fingertips thanks to the ownage that is Maven?

Also it shows me the ways in which poking a butt in this particular context can go horribly wrong, and either I deal with that situation or I explicitly declare that I am aware of it but just don't give a gently caress, in which case at least somebody does have to care. Also there are some other presumably-catastrophic things subclassing RuntimeException that I can care about if I want to, but probably can't do anything about in the general case.

I'll acknowledge that all of this extra clarifying guff may or may not be useful depending on the circumstances, sure. If I'm encoding business rules for some chair-throwing retard who completely changes his mind about the rules of the game every Tuesday and I can't resign from that shithole then sure I'll encode the FotW business rules in Lua or whatever instead, because it's going to be a godawful shifting heap of quicksand no matter what I do, but I can't really come around to this perspective that duck typing is the only way to go ever and that if I don't do it that way then I am obviously wrong for reasons that are far too trivial to even condescend to explaining. Yes, I can unit test the code instead of having a type checker, but I'd prefer to unit test slightly more complex interactions than that. "You should understand the code you're editing" is fine advice locally, but I shouldn't be expected to understand the global intricacies of a potentially huge codebase, that's what layers of abstraction are for.

way to go full sperglord

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
pray for the holy souls in spergatory



https://www.youtube.com/watch?v=Dlr90NLDp-0

tef
May 30, 2004

-> some l-system crap ->
yep the only way for an editor to work this poo poo out is to state it in triplicate you guys

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

tef posted:

yep java is type safe alright

code:
String[] strings = new String[1];
Object[] objects = strings;
objects[0] = new Integer(1); // RUN-TIME FAILURE
and other bits http://twofoos.org/content/java-type-system-holes/

It's you, the dumbass who uses an array of objects, the most generic and useless type.

tef
May 30, 2004

-> some l-system crap ->
better yet, java needs to use hungarian notation and have editor support for it

tef
May 30, 2004

-> some l-system crap ->

Hard NOP Life posted:

It's you, the dumbass who uses an array of objects, the most generic and useless type.

good thing noone uses them in popular third party libraries

Opinion Haver
Apr 9, 2007

lol if your language can't express function types

syntaxrigger
Jul 7, 2011

Actually you owe me 6! But who's countin?

Panic! At The cisco posted:

this is a bad post and you should feel ashamed for having made it


tef posted:

way to go full sperglord


Hard NOP Life posted:

It's you, the dumbass who uses an array of objects, the most generic and useless type.
examples are hard

EVGA Longoria
Dec 25, 2005

Let's go exploring!

Mr Dog posted:

Python: "Explicit is better than implicit!"

code:
def somefunc(butt):
    butt.poke()
Alright, so something called 'butt' is getting poked, what does this involve?

^Z
$ find -name "*.py" -exec grep poke {} +

(a bunch of poo poo that may or may not be relevant, repeat for every directory that contains Python code I might be pulling in)

alright, that was fun, let's try Java

code:
public static void someMethod(Butt butt) throws DoesntSwingThatWayException {
    butt.poke();
}
ok cool see how I can just Ctrl+click "poke" and go to a definition

too bad you can do exactly this in python in Sublime Text, God's One True Text Editor

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Shaggar posted:

no types are declared!except for ArrayList and StringBuffer

but you'll (or someone less obtuse than you will) notice they're only declared once, and not on every assignment

also it's just less code

code:
import java.util.ArrayList

list = ArrayList.new
f = list
x = list
code:
// Generated from types.mirah
public class Types extends java.lang.Object {
  public static void main(java.lang.String[] argv) {
    java.util.ArrayList list = null;
    java.util.ArrayList f = null;
    java.util.ArrayList x = null;
    list = new java.util.ArrayList();
    f = list;
    x = list;
  }
}

Adbot
ADBOT LOVES YOU

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

tef posted:

good thing noone uses them in good third party libraries

correct :)

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply