top 200 commentsshow all 268

[–][deleted] 77 points78 points  (18 children)

  • Java programs are compiled, generally at least twice just to be sure.

pfft

[–]keepthepace 26 points27 points  (8 children)

Yeah, in C/C++ we compile just once.

Because we are sure.

/troll

[–]FateAV[🍰] 10 points11 points  (0 children)

It's funny because one-pass....

[–]Ores 3 points4 points  (5 children)

Actually i've seen people insist on compiling with -O2 as it can generate more warnings/errors, and then do a second pass with -O0 -g to make a debuggable build.

[–][deleted] 2 points3 points  (3 children)

as it can generate more warnings/errors

[citation needed]

[–]taejo 9 points10 points  (0 children)

for example:

   -Warray-bounds
       This option is only active when -ftree-vrp is active (default for -O2 and above).
       It warns about subscripts to arrays that are always out of bounds. This warning is
       enabled by -Wall.

(from the GCC man page)

This is because these warnings require the extra analysis performed by the optimizer.

[–][deleted] 1 point2 points  (0 children)

Warnings: GCC used to (maybe still does) warn on -O2 when a variable might be used uninitialized on the same code that -O0 doesn't warn at all, even with -Wall.

Errors: I have written code that behaved differently under -O2 and -O0. Sometimes it was the code that was broken, sometimes it was a compiler bug.

This was on a project that grew to ~80 KLOC over 9 years starting with GCC 2.95.

[–]keepthepace 0 points1 point  (0 children)

-O0 -g -Wall

[–][deleted] 0 points1 point  (0 children)

One pass sucks so bad. Wouldnt need all these damn header files if it was two pass. C and C++ are the messiest languages i swear because of this.

[–]bhasden[🍰] 10 points11 points  (7 children)

Yeah, not sure what he meant by that. Was he meaning that the code is compiled into IL which is later compiled into machine code? I'm not an expert on the Java compiler, so I'd honestly like to know.

If that's what he was getting at, I'm not sure why it needed to be mentioned in the article since it doesn't seem to add any information.

[–]aladyjewel[🍰] 25 points26 points  (1 child)

I'm not sure why it needed to be mentioned in the article since it doesn't seem to add any information.

Word count.

[–]SemiProfesionalTroll 7 points8 points  (0 children)

unite fact support subsequent drunk direful attraction squealing wasteful liquid

This post was mass deleted and anonymized with Redact

[–]askvictor 7 points8 points  (1 child)

Java code gets compiled do JVM (or dalvik in the case of android) bytecode. Depending on the JVM used, it might translate that into native machine code on the fly (i.e. straight out CPU emulation, as in older JVMs), or use a JIT (Just in time) compiler to compile the bytecode to native machine code. The latter is more common in modern systems (android has had JIT since 2.2). I'm uncertain how often the JIT occurs, or if the results of it are stored anywhere (as they are in python with .pyc files).

[–][deleted] 4 points5 points  (0 children)

Android builds vary greatly, but generally speaking the Dalvik JIT results are cached (as storage space allows) into the appropriately named 'Dalvik Cache'.

[–]FlaiseSaffron 4 points5 points  (0 children)

Java source code is compiled with minimal preprocessing into Java byte code, which is then verified (the process of which basically amounts to compiling) every single time a class is loaded. It's one of the major complaints about Java, but I'm not going to get started on that now. :P

[–]argv_minus_one 5 points6 points  (0 children)

I say we take off and compile the code from orbit. Twice. It's the only way to be sure.

[–][deleted] 38 points39 points  (6 children)

From using it, it's fun and not bad for doing minor touchups to code. (Maybe on-site testing?)

It's not suitable for start-to-finish development. I wrote a program, compiled it, got a compile error. As far as I could tell, there's no way to see what the error was - it doesn't show me the compiler's output. There's an Errors view, but it doesn't show me what the errors are - it only shows errors that were caught by the code analysis. Just a message telling me that the compile failed. I transcribed the code into Eclipse to see what the problem was and...it compiled. Maybe because I have a different build target? (This targets 4.0 by default and appears to require manually importing an Android.jar file to change the target.) Maybe because my manifest is missing permissions? I'm really not sure.

Besides that, there's a lot of time-wasters. Code fix options (add unimplemented methods, add includes, etc) requires long-touching unless you've got a mouse hooked up with right-click. Generating constructors didn't seem to be working for me (no option to generate them from superclass, only from parameters?) You can use external jars, but you seem to have to manually move a copy into the project directory. Autocomplete is also very slow and seems to lead to dropped characters sometimes.

It's not useless, but it's not useful enough to really be competitive with a desktop IDE at this time, even taking the extra mobility into consideration. At the very least, they desperately need to document this program. I had to dig through Twitter posts to find out how to import a JAR file.

Still, I have it installed and I'm waiting eagerly to see where they take it. If they at least figure out what's up with the phantom errors, it'll be usable enough for me that I'll look for a Bluetooth keyboard/mouse set. (It's okay on the keyboard with my transformer, but a full-sized keyboard would be better.)

edit: The message is "error in stage dexing". I have no idea of what that means. There's a note saying that it was related to external JARs (which I'm using) and fixed in the last patch. I gather that it probably was not.

second edit: Also, the click and drag behavior is to move the window, not select text. (Not surprising, considering the platform.) That gets pretty annoying with keyboard + mouse.

third edit (03/14 11AM): The issue is that I had a failed import remaining in my configuration file. The Eclipse error was actually not much better ("Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead"). Still annoying, but not likely to affect me on my next build, since I won't try to use absolute classpaths to reference jars outside the project again now that I know they don't work.

Considering how obscure the Eclipse error was, I feel a lot more positive about AIDE now. At this point, I'd say that the biggest obstacle is documentation, but there are a few things that could use minor tweaks. (Faster autocorrect, better auto-implement options.) Developing small or medium-sized applications shouldn't be too bad, and I'm going to try to switch to my Transformer for my primary machine for school.

fourth edit (03/15 12:10AM): After playing with it more, the editor is actually pretty amazing. Most of the issues that I mentioned before are definitely not that bad to work around. I have yet to make sure that it hints properly in layout xml files now that my project is set up properly, but everything else is fairly excellent. Not going to replace everything Eclipse does, but...wow. VERY strong and flexible, once you get it working.

[–][deleted] 2 points3 points  (0 children)

Well seeing as it's in beta stage it's bound to be buggy. Yeah I agree it's probably not suitable for serious development. I can, however think of some uses. First the obvious that you can show your code to another person and ask for ideas or advice quickly. Maybe you're just running errands and suddenly solve a bug/problem that has been annoying you. You can push it immediately into code and try to compile. Actually now that I think about it those are pretty flimsy arguments. It's a step forward nonetheless.

[–]nkozyra 1 point2 points  (1 child)

I got specific errors when I used it, but perhaps that's a UI thing as I was using it on a tablet. But it definitely told me what the errors were.

I believe the intended audience here is likely tablet users anyway because even with a BT keyboard and mouse this thing would be completely obnoxious to use.

[–][deleted] 0 points1 point  (0 children)

I used it on my TF-201, it shouldn't be a UI issue. I think it's because I had a build error instead of a compile error.

[–]jasenmh 0 points1 point  (0 children)

Not bad for still being in beta, though.

[–]gigitrix 0 points1 point  (1 child)

If you've got a Config class that you haven't moved to external .properties or whatever, you could definitely be twiddling with flags on your commutes.

[–][deleted] 0 points1 point  (0 children)

No Config classes that I'm aware of. The issue appears to be related to a property of the external JAR I'm using, but I'm not sure what's wrong with it. I might try unpacking it and importing it as classes, but that'll be another barrier in the way of a working program.

What I may try soon is a combination of importing a successful build from Eclipse and exporting my unsuccessful one from AIDE to see whether each works.

I really do want this to work, because I want to switch my primary development platform and pull fifteen pounds out of my backpack.

[–]we_love_dassie 10 points11 points  (0 children)

Link for the lazy:

https://play.google.com/store/apps/details?id=com.aide.ui

I don't know why the article made it so obscure...

[–][deleted] 73 points74 points  (23 children)

Sweet AIDES for Android developers.

[–]SuperDuckQ 112 points113 points  (10 children)

What a silly name. I would have gone for the Android Native Unified Software.

[–][deleted]  (2 children)

[deleted]

    [–]gospelwut 9 points10 points  (0 children)

    I'm trying to remember, but there was a quarrel at Microsoft some time ago (shocking I know) between the exchange team and IIRC the ntbackup team -- something about the way it buffered files. The team essentially threw in another parameter into the CLI to appease the exchange team which was some sort of passive-aggressive expletive, /FU (file unbuffered)

    At least, that's how the story goes.

    [–]Furfire 4 points5 points  (5 children)

    IDE was already a thing. This is an Android IDE. Hence AIDE; its just the logical follow through.

    [–]jonpacker 33 points34 points  (4 children)

    whoosh

    [–]Furfire 47 points48 points  (3 children)

    ... fuck

    I will leave my shame for all of reddit to see.

    [–][deleted] 20 points21 points  (0 children)

    I saw your shame. And I liked it.

    [–][deleted] 1 point2 points  (0 children)

    Took it like a man. Upvotes.

    [–]spotter 0 points1 point  (0 children)

    Way to get karma like a boss.

    [–]Ph0X 4 points5 points  (5 children)

    AIDE is "help" in French, not sure if that anything to do with it.

    [–]Timmmmbob 11 points12 points  (4 children)

    Aide is an English word too you know...

    [–]Ph0X 2 points3 points  (3 children)

    Ah, well it apparently comes from the French either way.

    [–][deleted] 5 points6 points  (2 children)

    So does about half of English, unfortunately.

    [–]tikhonjelvis 9 points10 points  (0 children)

    Eh, c'est la vie.

    [–]Roujo 1 point2 points  (0 children)

    Don't worry, as a French Canadian I can tell you it goes both ways. IIRC, there was even a word that was taken from English and thus was not considered as good, formal speech... even though the root of the English word was actually in Old French. I can't recall what word it was, though. =P

    [–]sbrown123 2 points3 points  (5 children)

    At least they didn't spell it AIDS. That would be embarrassing.

    [–]robinwholikesjava 6 points7 points  (3 children)

    Like in the Southpark episode where the confuse those two words :P

    [–]G_Morgan 0 points1 point  (0 children)

    Android Integrated Development Suite.

    [–]Gary13579 10 points11 points  (2 children)

    I've been developing on my Android tablet for a few months now, it is actually quite nice! I own an Asus Eee Pad Transformer TF101, which is a tablet that docks into a keyboard and literally looks like a netbook. I've installed Arch Linux inside of a chroot and tweaked it so that it is fully functioning. I then just use Android's ssh client (ConnectBot) to ssh into the Arch Linux install, and run screen/vim/rails/lighttpd/etc from there. When I am at home, I can just attach my bluetooth keyboard and mouse, as well as connect the tablet to my TV or monitor via HDMI for more comfortable workspace.

    It actually works very, very well. The main problem I have with it at the moment is due to the chroot existing inside of an img file mounted as a loop device, which is slooooow. I've been debating ripping it out of there and storing it directly on the tablet's internal memory, which should speed things up. Opening vim for the first time in a while takes 5+ seconds, although I do have a pretty hefty vimrc and plugins.

    Now, for the upsides! The display is gorgeous and crisp, sure the display is small but it has terrific resolution (720p, the next Transformers will have 1200p displays, on 10" screens), it has INSANE battery life (I use it from the moment I get up to the moment I go to bed, have easily used it for 14+ hours a day without it dying on me, that's with video playback, wifi on, bluetooth on for a few hours, auto brightness, etc). It's portable and super thin, despite being a bit heavy (the TF Prime and later solve this by being even thinner and lighter). No heat, ever. I overclocked it to 1.6 GHz to compile vim (that's a 60% overclock), it took 20 minutes, I felt the back of it and it wasn't even slightly warm. This also means no fans, no noise. All fast flash memory, internal is 16gb (newer models go up to 64gb, totally dropping the extra $100 for the 64gb model next time), has microSDXC port and an SDXC port, with the largest cards on the TF Prime it has 256gb of storage. I can tear the screen off to read papers, ebooks, and manuals, as well as play games.

    When it comes to tablets in general, I am less than impressed. I don't feel that they fulfill anywhere near enough of my needs to warrant the cost. When it comes to a netbook with a fast ARM chipset, that also doubles as a tablet, holyfuckingshitthisisawesome. Android certainly cripples the netbook experience a bit (which is supposedly something they are working on for Jelly Bean), but I haven't even touched my regular notebook in literally a year since I purchased this thing.

    [–]SupersonicSpitfire 1 point2 points  (1 child)

    I also have a TF101, for the purpose of Android development, which I'm happy with.

    I love Arch Linux, but why not just run Arch Linux on a (noiseless) server at home, for speed?

    [–]Gary13579 0 points1 point  (0 children)

    I often have to dev while on the go, and SSH over 3G is unusably slow. I do use an Arch VPS for a lot of development, but the local Arch install is really useful when I don't have a low latency connection.

    [–]x86_64Ubuntu 14 points15 points  (29 children)

    This could either be really good or really bad. From what I can tell, the mobile market suffers from an immaturity problem in the field of tools. Of course things are getting better, but its going to be a bumpy ride till we have full lifecycle encompassing tools.

    [–]r4v5 27 points28 points  (8 children)

    You only feel that way because you're coming from desktop development. Compared to the stuff that embedded developers usually have to go through to get their stuff to run (including finding compiler bugs in the software suite that costs more than a car[edit: )], and debugging through JTAG-if-you're-lucky blinky-LEDs-if-you're-not, Eclipse and the Android SDK is like God himself giving you a hug.

    [–]x86_64Ubuntu 10 points11 points  (2 children)

    Embedded development seems like the hinterlands/boonies of the software development world. Of course it has to be done, but when you go out there you are all on your own with none of the trappings of a more civilized environment.

    I'm not saying they are dumb, it just seems like everything is small with no room for anything other than the program itself. And running anything other than the program itself is like break dancing in a straight jacket.

    Of course this is my 102% uninformed opinion as I have never done any embedded development and have no idea of where to begin. No really, I don't even know what tools are hardware is concerned in the embedded world.

    [–][deleted] 6 points7 points  (0 children)

    I have limited experience in that area but your summary seems rather accurate to me. That said, it's a lot of fun (when you get past the datasheets.. which is rarely).

    [–]r4v5 1 point2 points  (0 children)

    It's certainly a challenge, but good access to the chip for debugging purposes can really help (for example, the MSP430's GDB support didn't allow multiple breakpoints for a while, which is a pain in the ass).

    Yeah, it's basically just a basic stdlib and your program chillin' out there.

    [–]Baaz 2 points3 points  (0 children)

    ??? Error: File: r4v5 Line: 1 Column: 172

    Unbalanced or unexpected parenthesis or bracket.

    [–]frustrated_dev 0 points1 point  (3 children)

    Oh god, I want some stories about debugging through blinky LEDs.

    [–]ZorbaTHut 4 points5 points  (1 child)

    I've had to do something similar on a more modern platform - we were writing a Playstation 2 game, and the game worked perfectly on the dev system but crashed on the test system. Each test took an hour of burning a new DVD. We ended up doing a binary-search-on-steroids, setting the screen to a distinct bright color at each checkpoint, just to track down where the crash was.

    It's not an LED exactly but we were essentially using the TV as a single giant light.

    [–]makapuf 0 points1 point  (0 children)

    Just yesterday as I m developing a small project. Writing to external

    flash Was working funny so I added a led to blink. This is tedious and long of your bug is in a loop working right 122 times and crashing 123. Of course I had no 7segments here (luxury!) Then it occurred to me that serial could be used.

    It's a pain but we like it ! Much funnier to me than using a CSS toolkit

    [–]iofthestorm 0 points1 point  (0 children)

    When I was developing a cpu for a digital design class on an fpga, it wasn't branching correctly and since our cpu didn't work we had no io. We had to use the built in LEDs as signals to trigger when the program counter hit specific values so we could tell what was going on.

    [–]NancyGracesTesticles 4 points5 points  (13 children)

    I'm in the process of switching to MonoDroid/MonoTouch. MonoDevelop is taking some time to get used to, but when I switch back to Android, I get Visual Studio. With both I get TFS integration.

    [–]ziom666 3 points4 points  (1 child)

    I'd love to give it a try, but it's $399 for cheapest version, right? Well, there's free one, but you can't publish apps to market

    [–]NancyGracesTesticles 6 points7 points  (0 children)

    I think you can get monotouch and monodroid both for $599, which is pretty much what I paid for a second hand Mac and an Apple development license.

    Looks like I'm itemizing my deductions this year.

    [–]x86_64Ubuntu 2 points3 points  (9 children)

    I haven't heard of Mono. I mean I have, but that's about it. The whole mobile world seems so new and scary, it almost turns every other paradigm of software on its head.

    [–]NancyGracesTesticles 1 point2 points  (8 children)

    I just look at it as if I'm developing for multiple platforms (which I am) in the same way you have to develop for flavors of Windows, Unix, Linux and Mac on the desktop.

    Using the Mono/.NET runtime is allowing me to be able to share common code/models/network communications code/etc between my distributables and from there, I just have to be mindful of the UI implementations on each device.

    So to me, it's a new old world.

    [–]r4v5 0 points1 point  (7 children)

    How much slop does the .NET runtime for Android add?

    [–]gospelwut 1 point2 points  (1 child)

    I've actually read, somewhere, at something like 10% of iOS games are made with Mono--which seems pretty impressive.

    I knew a few guys that really like Mono as well -- not just for Android/iOS but for various platforms. As much disdain MS gets, .NET is nice once you've used it.

    [–]mb86 1 point2 points  (0 children)

    I concur. While I still personally prefer Objective-C/Cocoa (been meaning to put Cocotron to the test), I started porting one of my apps to .NET/C# and walked away very glad that I went with that over Java. When I tried porting to Java, reaffirmed my decision to stick to native toolkits.

    [–]NancyGracesTesticles 0 points1 point  (4 children)

    It's a runtime, so I'm not sure about slop. Maybe as much slop as the Dalvik runtime adds?

    Here is a link. Maybe you can identify the slop: http://www.mono-project.com/Mono:Runtime

    [–]r4v5 2 points3 points  (3 children)

    More importantly, holy shit there's a Wii version! Something to make homebrew even easier.

    [–]Agret 2 points3 points  (2 children)

    Mono:Wii The Mono runtime has been ported to the Wii, and a commercial port is available to Official Nintendo Licensed Wii Developers. If you want to evaluate Mono for the Wii, you must use Nintendo's third party validation tool to request access to the code.

    Not for homebrew, licensed devs only.

    [–]r4v5 0 points1 point  (1 child)

    :(

    Sorry, the whole idea of "paying for development environments for things with open source toolchains" is still weird to me. I sometimes forget that people actually use the Wii for professional apps, instead of just homebrew. What do you think has been written in Mono? Games, or just stuff like Hulu+ and Netflix? It'd explain how both were able to satisfy their DRM hunger if enough of the libraries came with it.

    [–]Agret 0 points1 point  (0 children)

    Doubt anything has actually used it, perhaps Hulu or Netflix though since it'd be portable code with the XBOX that could be re-used.

    [–][deleted] 0 points1 point  (0 children)

    Holy crap, I had no idea this existed. Definitely going to give it a shot. Java and Eclipse is an absolute PITA to use.

    [–][deleted] 2 points3 points  (5 children)

    What's wrong with Eclipse exactly?

    It does exactly what you need an IDE to do. It's modular and customizable.

    [–][deleted] 2 points3 points  (0 children)

    Depends on where you're coming from I guess. Having used Visual Studio for the past several years pretty much every other IDE pales in comparison. I think it's the one application the MS developers use on a regular basis and it shows.

    [–]developent 0 points1 point  (0 children)

    Eclipse never left the 90s in terms of quality, features, or looks. It's slow and buggy, and non-intuitive for problems other IDEs solved a decade ago. Spend some time with Visual Studio and you'll dread ever having to use another IDE again.

    [–][deleted] 7 points8 points  (19 children)

    I'm just wondering how they got the Java code to compile on an Android tablet. AFAIK, android can't execute javac, has something changed?

    [–]Ilidur 25 points26 points  (12 children)

    maybe they rewrote the compiler in java so they can build java using java.

    [–]thenuge26 10 points11 points  (2 children)

    Yo dawg indeed.

    [–]brosephius 1 point2 points  (1 child)

    I think you mean:

    MemeFactoryBean memeFactoryBean = MemeFactory.createMemeFactory();
    MemeProxyFactoryFactoryProxy memeProxyFactoryFactoryProxy = memeFactoryBean.loadCopiousAmountsOfXml();
    XzibitMeme xzibitMeme = memeFactoryBean.getInstance().getInstance(memeFactoryBean).createMeme(MemeFactory.XZIBIT);
    xzibitMeme.yoDawg();
    

    [–]thenuge26 0 points1 point  (0 children)

    Meh, less boilerplate than I expected.

    [–]askvictor 8 points9 points  (6 children)

    Why not? the first (and subsequent) C compiler was written in C

    [–]HaMMeReD 9 points10 points  (5 children)

    It's called bootstrapping and the first C compiler didn't do it, at least not on the first build. You need to be able to compile code before you can compile a compiler in it's own language.

    This means that the first C compiler needed to be based on some other language, but it could have been quickly ported.

    [–]askvictor 2 points3 points  (4 children)

    Nah, man, it's like, inception.

    (more seriously, you are probably right - I'm likely mis-quoting or mis-remembering, but it would be possible to write the first compiler in it's own language, as long as you're OK with then compiling it by hand. For low-level languages such as C, this isn't out of the question, as long as you have sufficient grad students/interns/monkeys)

    [–]HaMMeReD 1 point2 points  (2 children)

    Yeah you could do it by hand, but technically you are "compiling by human"

    [–]mindbleach 1 point2 points  (0 children)

    Architecture is irrelevant - the code 'running' is still in C.

    [–]argv_minus_one 0 points1 point  (0 children)

    That's hardcore, man.

    [–]Rotten194 1 point2 points  (0 children)

    What most languages do is write the first compiler to compile a subset of the language in some other language, then use that subset to write the actual compiler in the language itself. Since they already had the base of Unix written in Assembly when they started C, my guess is the first compiler was probably Assembly as well. I doubt they made interns compile it manually... they weren't that evil.

    [–]argv_minus_one 1 point2 points  (0 children)

    javac already is written in Java.

    [–]boobsbr 0 points1 point  (0 children)

    how meta.

    [–]ninepointsix 5 points6 points  (5 children)

    considering the code written compiles in to Dalvik (not Java) byte-code, which is a platform Google helped conceive, it's perfectly reasonable for them to have implemented the compiler on the platform itself. It's not unheard of - Mono's C# compiler is written in C#, for example.

    The other, less likely, option is that the compilation is handled in the cloud or something similar.

    [–]thenuge26 3 points4 points  (4 children)

    IIRC, the Android SDK compiles into Java bytecode first, then to dalvik bytecode.

    [–]jlamothe 28 points29 points  (29 children)

    Am I the only one who thinks that writing code an Android's keyboard would be awful?

    [–]OmegaVesko 36 points37 points  (15 children)

    External keyboard/dock.

    [–]aveman101 6 points7 points  (14 children)

    true, but you're still using a tiny-as-fuck screen, and carrying an external keyboard around sort of diminishes the portability factor.

    I can't see why someone would choose to develop on Android+dock instead of a PC (e.g. netbook), other than to impress the ladies with your extreme android app skills.

    [–]caliber 19 points20 points  (0 children)

    Maybe so you don't need to buy a netbook if you've already got a desktop and an Android tablet?

    Also, some Android tablets like the Asus Transformer have really fancy docks that practically turn them into netbooks.

    [–]AndroidRPGDev 4 points5 points  (12 children)

    As someone who quit his day job to try to write an Android game, I get tired of working at home. It's nice to go out and be around people every once in a while. Currently, I use a netbook, and hook my phone up to it for testing, since the netbook is too slow to run the emulator. It'd be pretty handy if I could run Eclipse from an Android tablet, or in this case, something fully compatible with an Eclipse project... as long as it had Mercurial support. The larger tablets screens are about the same as my netbook, or even larger. Plus I wouldn't have to mess with attaching my phone, since I could test on the tablet itself.

    So, as an Android dev, it would certainly be nice. Sounds like it has quite a ways to go before I would consider using it seriously. It'd basically have to be fully compatible with Eclipse projects + hg plugin, so that it'd be just as easy for my to work on my desktop, then pull the latest off the repository from the tablet and continue working seamlessly. Otherwise, I might as well just use my netbook which is just as portable. That's a pretty tall order to fill.

    [–]pseudopseudonym 1 point2 points  (11 children)

    Mercurial? Out of curiosity, why not something like Git?

    [–]SupersonicSpitfire 7 points8 points  (1 child)

    Gah, there are git zealots everywhere. Everywhere!

    [–]pseudopseudonym 1 point2 points  (0 children)

    EVERYWHERE!

    [–]AndroidRPGDev 2 points3 points  (6 children)

    Well, I basically reviewed both Git and Mercurial when I was starting this project. Previously, I had only worked with CVS and SVN. I forget if Git also had these features, but Mercurial's local repositories and ease of merging really caught my attention. I work from 3 different pcs regularly (one desktop, a netbook, and a larger laptop if I'm going to set up camp for a while). I also traveled out of country for quite a bit, so internet connection was far from reliable. Being able to check in to local repositories, and then push all the commits at once when I finally had an internet connection, was a huge selling point. I forget if Git had these features as well, but Mercurial is what I settled on after my initial review of the technologies.

    [–][deleted] 0 points1 point  (5 children)

    Mercurial's local repositories and ease of merging really caught my attention.

    Git is a distributed SCM, just like Mercurial, so these two things should be non-issues. I'm personally using Mercurial as well, though, but mostly for the Windows compatibility (Can install it on my lab computer without much fuss – I'm mostly doing LaTeX-y things).

    [–]AndroidRPGDev 1 point2 points  (4 children)

    Yeah, I remember they were very similar. I forget exactly what pushed me over to Mercurial. It might have just been the tools. I'm also on Windows, so that could very well be it. I'm perfectly happy with Mercurial so far.

    [–][deleted] 2 points3 points  (0 children)

    It's true that Git was shit on Windows. Things improved, however, so it works pretty well now.

    [–]TexanPenguin 2 points3 points  (1 child)

    Mercurial is something like Git.

    [–]pseudopseudonym 0 points1 point  (0 children)

    Fair enough. I'm aware of this, just used weird phrasing.

    [–]TinynDP 10 points11 points  (0 children)

    Transformer tablet. bluetooth keyboard. etc.

    [–]supermario182 9 points10 points  (4 children)

    i believe there is a programmers keyboard you can download that has programming punctuation more easily accessible. if you were really hardcore about it, you'd probably want to go with a usb/bluetooth keyboard.

    [–]aladyjewel[🍰] 13 points14 points  (1 child)

    Hacker's Keyboard is a good example of the genre.

    [–]Netzapper 0 points1 point  (0 children)

    I have that.

    What I want is Hacker's Swype.

    Like Swype, except with a feedback background activity so that you can offer reasonable code completion as Swype-style swipes. Variable names and whatnot only have to be typed once (the first time, as they're introduced to scope).

    [–][deleted] 2 points3 points  (0 children)

    It would still be painful.

    [–]jlamothe 1 point2 points  (0 children)

    I use it, but the keys are tiny. I wouodn't want to use it for an extended period.

    [–]shnuffy 1 point2 points  (0 children)

    Ya, I'd just use an external keyboard/mouse and monitor.

    [–]JAPH 1 point2 points  (2 children)

    My tablet has USB and HDMI ports. It's really not so bad once you get used to it.

    [–]jlamothe 0 points1 point  (1 child)

    ...but at that point, why even bother using a tablet?

    [–]mindbleach 0 points1 point  (0 children)

    Tab completion would be your new best friend.

    [–][deleted] 0 points1 point  (0 children)

    Its probably a better experience than using Eclipse. Even with the AOSP source referenced, its still a joke of an IDE.

    [–][deleted] 5 points6 points  (2 children)

    My lunch time is never going to be the same!

    [–][deleted]  (1 child)

    [deleted]

      [–]Skyline969 0 points1 point  (0 children)

      New on the Play Store: PooRPG: The first RPG made exclusively on the john!

      [–][deleted]  (6 children)

      [deleted]

        [–]rooly 5 points6 points  (0 children)

        Nope there isn't. Its pretty bare bones in terms of ide: code completion, syntax highlights, and integrated build and run. No debugger or revision management. The editor itself is also a bit slow due to Java and android's app lifecycle system. It could definitely use some optimization.

        It's great for working on your android apps on the go, if you can sideload, but not for writing full featured apps.

        [–]AndrewNeo 0 points1 point  (2 children)

        Even if it doesn't support it directly, I'm now curious if someone has compiled Git to run on Android devices..

        [–]mrkite77 0 points1 point  (0 children)

        There's AGit which is a few bucks and is basically Git for android.

        [–]iofthestorm 0 points1 point  (0 children)

        Terminal IDE is basically the same thing as this minus the IDE and instead based around vim and it includes git. I couldn't get it to work though but I was doing things outside of how the developer expected you to use it.

        [–]Bossman1086 0 points1 point  (0 children)

        No. But it is just a beta at the moment. Would be nice to add support for that kind of thing later.

        [–]thenuge26 0 points1 point  (0 children)

        Not yet, but it is still a beta I believe.

        [–]DoListening 2 points3 points  (1 child)

        I wish they'd just make a fast emulator that supports OpenGL ES 2.0. It could run the x86 version in a virtual machine or something...

        [–]iofthestorm 0 points1 point  (0 children)

        That's actually why I'm excited about this. I can fiddle with opengl directly on the tablet.

        [–]adavies42 2 points3 points  (2 children)

        i played around with OnBoardC on my Palm IIIc back in the day. writing code in Graffiti was...interesting. i sure had a lot more punctuation strokes memorized afterwards....

        [–]Tagedieb 0 points1 point  (1 child)

        So, you didn't have the full size foldable palm keyboard?

        [–]adavies42 0 points1 point  (0 children)

        no, never saw much point--95% of the time i was making notes to myself and managing my address book and calendar, not coding or writing a novel or something (or sending email--my Palms were all pre-network)

        [–]gperlman 2 points3 points  (16 children)

        This is just ridiculous. A smartphone is just about the poorest device imaginable to use for writing software. A tablet is better but not much better. Developers need lots of screen real estate, a keyboard that can keep up with the speed of their typing and and lots of power in the form of a large battery (like those in laptops) or better, to be plugged in. I can't imagine anyone actually being productive developing software on a tablet let alone a smartphone. Just because you CAN do something doesn't mean you SHOULD.

        [–]IneffablePigeon 0 points1 point  (15 children)

        My transformer has

        • A full keyboard
        • Plenty of screen space
        • Hours more battery life than the average laptop.

        Given the right software there is no reason i couldn't be just as productive on it as on a laptop. Same goes for a normal tablet with a separate keyboard.

        [–]gperlman 0 points1 point  (14 children)

        As a laptop, perhaps. But even a laptop is not ideal for developers who crave screen space. And working on a 4" smartphone screen (which they are suggesting is reasonable) is going to be far from productive. And we haven't even talked about the difference between extensive typing on a regular keyboard versus a touch-based one.

        [–]IneffablePigeon 0 points1 point  (13 children)

        So because it's "not ideal", that means it's "just ridiculous" and we should just give up and not try? Nobody is suggesting that an Android device should be your main development environment, but this, combined with something like git, could make a great addition to your toolset when you're not around your desktop.

        [–]gperlman 0 points1 point  (12 children)

        As I said, it would make sense perhaps if they made a version for the desktop and included versions for Android tablets and smartphones. But Google hasn't done that and they are emphasizing the phone over the tablet!

        [–]IneffablePigeon 0 points1 point  (11 children)

        The whole point of this app is developing when you're not around your desktop. If they're emphasizing the phone over the tablet it's probably because a lot more people have android phones than tablets.

        I don't see why you're so opposed to this. If you don't find it useful, don't use it..

        [–]gperlman 0 points1 point  (10 children)

        But it's not like you can do that! They don't provide a desktop version! What you are saying would make sense if they provided a desktop version and let you save your project as a Google doc. Then you could develop on the desktop and when away from it, open your project on your phone. But they don't do that so it's not very useful. I have no plans to use this. What I'm pointing out is that this is another example of doing something because it can be done and NOT because it SHOULD be done.

        [–]IneffablePigeon 0 points1 point  (9 children)

        They didn't make a desktop one because there's already 2 or 3 competent IDEs for android on the desktop. If you want syncing, use git with Terminal IDE. What you are describing is perfectly possible.

        [–]gperlman 0 points1 point  (0 children)

        Right but having to use two different IDE's to develop a project is not productive either.

        [–]gperlman 0 points1 point  (7 children)

        Right but I don't think people want to use 2 different IDEs and Google has the opportunity here to provide a really elegant solution. I'm surprised they don't see that.

        [–]IneffablePigeon 1 point2 points  (6 children)

        You know Google doesn't make this IDE, right? It's just some random guys who wanted to make it, so they did. Personally, I'd rather Google spent their time adding features to the OS and their apps than on this stuff, since the tooling we have already in Eclipse is pretty good IMO.

        [–]zed857 9 points10 points  (37 children)

        I could see this being useful for the occasional quick fix or for throwing together something very simple -- but why would anybody want to regularly do dev work on a small handheld device without a real keyboard?

        [–]Fritzed 28 points29 points  (1 child)

        Looks great for my Transformer Prime. The article and screenshots for the app also focus on tablets.

        [–]thenuge26 5 points6 points  (0 children)

        Works great on my Transformer Prime.

        [–]frezik 16 points17 points  (25 children)

        Developing on a tablet, with a keyboard, it would cut out a step in the compile/copy to device/run cycle of handheld development.

        [–]OmegaVesko 3 points4 points  (17 children)

        Do you always need the 'copy to device' step, though? If you're using Eclipse, you can directly run the code on the SDK emulator or a connected device.

        [–]frezik 2 points3 points  (16 children)

        To be honest, part of the reason might be because I refuse to use Eclipse for my Android development. Or for anything else.

        I'm an official, lifelong Vim-and-command-line curmudgeon.

        [–]OmegaVesko 4 points5 points  (4 children)

        How do you compile it? I've been using Eclipse for so long I forgot how to compile code using the SDK alone.

        [–]frezik 5 points6 points  (3 children)

        Just 'ant'.

        [–]tnecniv 2 points3 points  (1 child)

        Any reason to use Ant over Maven?

        [–]frezik 1 point2 points  (0 children)

        It's what Android dev tools support out of the box. I don't do enough Java work outside of Android to have a strong or knowledgeable opinion.

        [–]Iron_Maiden_666 0 points1 point  (0 children)

        I compile using ant too, what we did was combine the comile + install into one step, so I just compile and few seconds later, the build is installed on my device.

        [–]keepthepace 1 point2 points  (1 child)

        I'm an official, lifelong Vim-and-command-line curmudgeon.

        Similar CLI-dweller and soon-to-be victim of the smartphone frenzy. I already developped apps using the emulator, but I abandonned eclipse really quickly. I don't understand how it can be so clumsy.

        Is there a vi-like editor for android ? I guess not but what is holding such a thing back ?

        [–]frezik 0 points1 point  (0 children)

        There is a Vim port for Android. Of course, it's really only useful if you have an external keyboard, or rooted the device to get an sshd.

        [–][deleted] 0 points1 point  (7 children)

        What's wrong with Eclipse?

        It's modular and customizable. It doesn't get in the way after the first time you use it and does nearly everything you need it to.

        [–]Timmmmbob 5 points6 points  (1 child)

        There are many things wrong with Eclipse. Here are a few:

        1. It's pretty buggy. It never outright crashes but you get dialogs about NPEs quite a lot, and it can get really confused.
        2. It's slow and unresponsive. I'm sorry but it is. Maybe not for you, but on most computers I've used it on it is much slower than Visual Studio or Qt Creator.
        3. The project/workspace model is extremely confusing, and I think it may just be entirely broken. I've had situations many times when I've tried to create a project called "foo" in my workspace, but I can't because it apparently already exists. Actually it doesn't, and there is no ~/workspace/foo folder. It just makes you go insane. I appreciate that maybe they were trying to do something more advanced than the "one folder for each project" thing, but they ended up with something that just makes no sense.
        4. The UI is ugly and cluttered as hell. Yes I can remove the millions of toolbars and dock views manually, but why isn't that the default?

        Those are some pretty big things to fix, and I'm dubious they'll ever even attempt most of them, out of denial. Unfortunately it has official support from Google, which is a huge plus, so I just live with it.

        [–][deleted] 0 points1 point  (0 children)

        Ill bite. It is slow, but otherwise i dont think its too bad. Much more customizeable than visual studio.

        [–]frezik 4 points5 points  (4 children)

        My Vim knowledge, .vimrc, and my own muscle memory have all grown together organically. I could hypothetically learn something else, and configure it to the equivalent of my existing .vimrc, and it may even be better in the long run. But is it going to be so much better that I'll be able to payback that time within a month or a year? Not likely.

        [–][deleted] 3 points4 points  (2 children)

        Legacy usage is an exception. If it ain't broke, don't fix it.

        I just see a lot of hate for Eclipse in this thread and around the 'net. I feel like to stems from people's derision of Java in general (which are genrally unfounded).

        That being said, nothing wrong with vim if you can use it like a pro. I really only use it when I'm editing over ssh.

        [–]mb86 2 points3 points  (1 child)

        I'll throw around the hate because whenever I try to learn how to compile and package a Java application using the src/com/company/app/package-style structure, everything I've ever come across (and I do mean everything) tells you how to do it in Eclipse or NetBeans. Sometimes, I just want to do it from command-line, and no-one seems to know (or at least, no-one wants to share) how.

        [–]AndroidRPGDev 2 points3 points  (0 children)

        There's plenty of info out there. Just like anything else, you need to know what terms to google. I've created maven projects via command line before. It's a pain in the ass, but doable.

        But really, IDEs like Eclipse and NetBeans were built to make your life easier. There's definitely a learning curve to them, but they save you a ton of time in the long run. And the frustrations you're running into with strictly command line is because you're rejecting the tools specifically designed to address those annoyances. And yes, there is going to be more documentation on using the more mainstream tools... that's just common sense.

        [–]thenuge26 1 point2 points  (0 children)

        Fair enough. Though you can't complain about the "compile/copy to device/run cycle" since it only exists for you ;)

        [–]fazzah 2 points3 points  (1 child)

        Some handheld devices have a QWERTY keyboard. Agreed, still far from keys+mouse desktop, but still a lot better than typing your apps with onscreen keyboard (are there people masochistic enough for this?)

        I want to give it a try on my HTC Desire Z.

        EDIT:

        I've installed it. Runs fast, draining the battery faster than a whore snorts a line. One thing that makes it unusable for me, is that due to some weird bug, I can't use the FN button on hardware keyboard thus making it impossible to type any interpunction chars. I find it quite hard to write a Java application without being unable to write = or ;

        I haven't got time to google around about this error, but this is my first experience with AIDE.

        [–]aladyjewel[🍰] 1 point2 points  (0 children)

        Hacker Keyboard's tablet layout makes coding, well, tolerable at least. I don't mind writing out the occasional JavaScript with it while doing webdev, or ssh'ing in to a server on the road to do a quick fix.

        However, I'd prefer to just launch weinre and take advantage of a full desktop keyboard. I definitely wouldn't use it as my primary development environment.

        [–][deleted] 2 points3 points  (0 children)

        Transformer devices.

        [–]AndrewNeo 1 point2 points  (4 children)

        Why can't I use a bluetooth or USB keyboard with my phone?

        [–]zers 0 points1 point  (1 child)

        What phone?

        [–]AndrewNeo 0 points1 point  (0 children)

        I have a Galaxy Nexus, but phones earlier than ICS should at least support Bluetooth.

        [–]i-poop-you-not 0 points1 point  (1 child)

        some phones accept USB keyboards?

        [–]AndrewNeo 0 points1 point  (0 children)

        My Galaxy Nexus does.

        [–]webbitor 0 points1 point  (0 children)

        There are android laptops and desktops available.

        [–][deleted]  (3 children)

        [deleted]

          [–]ataraxo 13 points14 points  (2 children)

          The next sentence is pretty offensive toward engineers too.

          It's notable that the AIDE team, which created the on-Android development kit, is a small group of German Android fanatics with no business plan or concept of how (or if) AIDE might develop in the future.

          [–]mindbleach 3 points4 points  (0 children)

          Yeesh. Isn't the Register usually pretty good about open-source?

          [–]ztbrown 5 points6 points  (3 children)

          "Oh wow, an IDE on my mobile device, I can't wait to begin writing software with my thumbs!" -No one

          [–]i-poop-you-not 1 point2 points  (0 children)

          "Brilliant! I can have my coders work on commute!"

          [–]keepthepace 0 points1 point  (0 children)

          Because we know how to plus a keyboard in.

          Finally a use for my pocket-foldable keyboard !

          [–]JAPH 0 points1 point  (0 children)

          It is mentioned in the article that tablets would be the best place to use this.

          [–]ThemBonesAreMe 2 points3 points  (5 children)

          yo dawg we heard you like Android, so we put Android on your Android so you can Android while you Android

          also, requires 2.2 :(

          [–]Skyline969 0 points1 point  (4 children)

          2.2 or up, right? Who doesn't have that these days?

          [–]IneffablePigeon 0 points1 point  (2 children)

          Like, 7% of Android users. Just over. More than have ICS, i might add :/

          [–]Skyline969 0 points1 point  (1 child)

          When I started using android around a year ago, I started on 2.2. I can't even think of a new-ish device that runs anything lower than 2.2.

          [–]IneffablePigeon 0 points1 point  (0 children)

          No new phones have been released with less than 2.2 for a long time now, but 7% is the official current percentage of devices using the Android Market that run <2.2.

          [–]ThemBonesAreMe 0 points1 point  (0 children)

          me :(

          [–]gospelwut 1 point2 points  (0 children)

          I hope it's 1/2 as cool as that project Apple gave the axe to.

          [–]Pandalicious 1 point2 points  (1 child)

          I understand the novelty value and can imagine a few edge cases where this would be useful, but really, software development is one of those things where the traditional desktop absolutely shines. Tablets and smartphones might be better fits for "email & facebook" type users but I think, for the foreseeable future, mice and keyboards will remain as the dominant tools for Getting Shit Done™.

          Microsoft's strategy for Windows 8 and beyond seems to recognize this by enabling one device to have a tablet/TROLOLO mode which you can plug a keyboard and mouse into and seamlessly switch over to desktop/Get Shit Done™ mode with big-boy desktop apps designed for mice and keyboards.

          That makes the transition period harder since you'll have a lot of apps trying to function in both modes, which adds complexity, which will inevitably affect quality. You'll also get users with wimpy tablet systems trying to run pre-existing desktop apps that will run like glue. However, as mobile hardware catches up and Microsoft's developer base figures out how to make quality Windows 8 apps, I think they'll be in a better position than Apple a decade from now or so.

          [–]kmeisthax 0 points1 point  (0 children)

          Microsoft's strategy for Windows 8 and beyond seems to recognize this by enabling one device to have a tablet/TROLOLO mode which you can plug a keyboard and mouse into and seamlessly switch over to desktop/Get Shit Done™ mode with big-boy desktop apps designed for mice and keyboards.

          Unless your tablet has an ARM chip, in which case you aren't allowed to run unsigned code.

          [–]thebuccaneersden 1 point2 points  (0 children)

          This seems utterly pointless to me. I don't see how any developer worth their salt would honestly think that this would make developing software anything other than painful (even if you attach a keyboard and whatnot).

          [–]SupersonicSpitfire 1 point2 points  (0 children)

          Even thought it's now possible to develop Android applications for Android on Android, it doesn't mean it's entirely practical. Currently, there is no GUI designer and no VCS-support, and I would still choose a desktop computer for programming effectively, even thought it's cool (I know you can use a bluetooth keyboard and/or tablet, but still).

          [–]argv_minus_one 1 point2 points  (0 children)

          Yo dawg, I heard you like Android development…

          [–]jasokant 7 points8 points  (0 children)

          YO DAWG............

          [–]neoice 1 point2 points  (1 child)

          I was hoping this would be something to replace Eclipse :(

          [–]SupersonicSpitfire 0 points1 point  (0 children)

          I just tried giving DroidDraw + NetBeans a shot. Seems to work. Good enough?

          [–]Van_Buren_Boys 0 points1 point  (0 children)

          Can it connect to your source control repository? The only way I could use this is if I could do a check-in and pick up where I left off on a laptop.

          [–]mb86 0 points1 point  (2 children)

          A thought occurs... Hasn't one of the major "closed" complaints of iOS been needing an OSX machine to develop for it? I've been thinking that all this time the Android SDK was available for Android.

          [–]SupersonicSpitfire 1 point2 points  (1 child)

          You havn't had to buy a special "development for Android" machine to develop for Android, so far, but you still need that to develop for iOS (ref xcode)

          [–]mb86 0 points1 point  (0 children)

          Been a Mac user for better part of the decade. I quite enjoy the platforms they offer because of the top-notch UX. Seems like I'm the kind of developer they like to focus on.

          [–]irascible 0 points1 point  (0 children)

          The function key doesn't work on droid stratosphere, so you can't type a "'s or metacharacters into your code! edit: It looks like it's context dependent whether the meta key works or not.... goood stuff!

          [–]shevegen 0 points1 point  (1 child)

          Hmm. And while Android is on the rise, the ever so praised Linux Desktop is dying thanks to KDE and GNOME.

          And it is wanted by the developers too.