Comment by black_knight

Comment by black_knight a day ago

14 replies

J2ME was my first experience with mobile app development. It was very direct and easy to program for! But it definitely needed testing on the different devices. We had an array of different phones to test on. And some definitely had a nicer implementation than others.

The Java it supported was very old fashioned, with no generics. Which was a pain at times.

pjmlp a day ago

Android is no different, even though Google used to say otherwise to push Android over J2ME.

https://engineering.fb.com/2016/07/13/android/the-mobile-dev...

  • daghamm 20 hours ago

    Even iOS exist in many different sizes and configurations these days. If you look closer at the pictures in that post you will see multiple iphones.

    I think it is fair to say that no serious developer will publish an app without testing on at least 2-3 physical devices.

    • pjmlp 20 hours ago

      True, but iOS doesn't have OEMs having their own forks, which takes this to the same level as J2ME used to be.

      Whatever they come up in GUI features, changes to AOSP behaviours, custom drivers, their own extended SDKs on top, hardware form factors,...

      • daghamm 19 hours ago

        If you mean Chinese or Russian OEMs with their own version of ASOP, well that's not really Android anymore and is not using the Play app store anyway.

        Western devices have to go through certification to use the name Android, so its not the wild wild west you think it is (although obviously some bugs may fall through).

        See for example

        https://source.android.com/docs/compatibility/cts

  • dale-cooper 20 hours ago

    Having experience with both platforms I'd say it's not comparable. J2ME was much worse in this regard.

    • pjmlp 20 hours ago

      I also have experience across Sharp, Nokia and Sony Ericson devices from J2ME days, and whatever brands ship Android phones, and outside flagship Android models, it is a jungle out there in drivers, AOSP customisations, vendor specific APIs, so I am of different point of view.

      • dale-cooper 18 hours ago

        Perhaps I'm spoiled from working mostly with React Native nowadays and have forgotten the pain :)

inglor_cz 19 hours ago

I have a few J2ME apps under my belt as well.

The most infuriating thing was extreme fragmentation when it came to support of various APIs in devices, even devices from the same vendor. Nokia was prominently culpable of this. The Finnish giant vomited out an enormous stream of S40 and S60 phones whose support for APIs was all over the map, which meant producing a shitload of JARs depending of what you needed, and the code was cluttered with constant checks of what is supported and what not. What an irony given Java's official motto of "Write once, run anywhere". Just freaking no.

Being a developer for Nokia was its own kind of hell. They never understood what API standardization is for and didn't care about your time and effort.

Hey, here are 12 different devices for this year with different hardware, screen size and other equipment, and you'd better get your hands on all of them to make sure that your app really works and looks acceptably, because an emulator only gets you half way. Also, any firmware update from us can kick your house of cards apart, and there will be like three of them coming in the next year. Happy programming!

  • toast0 9 hours ago

    > Hey, here are 12 different devices for this year with different hardware, screen size and other equipment

    Also, they don't have wifi, and they only do GSM 900/1800, have fun testing in the US.

  • ralferoo 9 hours ago

    > Java's official motto of "Write once, run anywhere"

    The unofficial motto was "Write once, debug everywhere"

  • throwaway04324 15 hours ago

    > whose support for APIs was all over the map, which meant producing a shitload of JARs depending of what you needed

    I wouldn't be surprised if this was actually one of the reasons why Sun fought MS and Google when they tried to make their own "Java" versions (embrace+extend). They didn't want a repeat of the J2ME situation.

    • pjmlp 10 hours ago

      Sun lawsuit against Microsoft predated J2ME, and was related to language changes.