![]() |
.net vs Java for development?
If you have experience developing for .net and/or Java for multi-platform/multi-device environments, which do you see leading the future of development, and why?
Thanks -Dino |
Do you have a particular type of application in mind? What can you code in already?
|
Quote:
I have been developing Windows software with Visual Studio and Delphi (Pascal) since early 1990s. I will be developing internet-based Client-Server applications. My last project was written for desktop in Delphi/Pascal with ASP server-side. ASP totally sucked in terms of server reliability. We proactively rebooted the servers daily to clear any operating system/server memory leak buildups. I want to be able to develop software and apps that run on Windows, Apple, and Linux. It seems to be that .Net has had it's day. I like the idea of a single Java source, compiled to the different Java Machines. I am leaning towards Java, but I value real-life experience/comments from others. Also, I value a platform that allows for copy protecting applications. For example, I don't mind compiling a separate executable for a specific client, and it would be nice if I coule embed encrypted code in the executable to bind that to that client. |
My view is that .net is the better technology, and I think it has made strides towards cross-platform functionality.
That said, often it is what you are most comfortable coding with, if you are doing all the coding yourself. |
Quote:
Because I've spent so much in Microsoft's development world (since MS-DOS 1.0), I'm keen to step outside of it, if the alternative is as, or more, ubiquitous. |
the future of web servers is nodejs and python
I've used jetty (a java server library) before, its *ridiculously* complicated -- low-level -- compared to python/node. you're doing so much stuff from scratch that would already be implemented for you in node/python I completely understand sticking with what you know (.net) but if you're looking to learn something new, I don't know why you'd choose java. |
Quote:
I have been noticing nodesjs quite a bit. Because I started as a firmware programmer in the seventies, I'm used to building my libraries from scratch. In the eighties I built a (now-Windows-style) GUI in C for my own vertical market software. RE Jetty: I was wondering how Java maps to the server side. I think I will focus for now on Java/whatever for the desktop software and app side. I don't want to develop my own runtime libraries for Linux, Windows, Apple, so building on something like 3 "machines" (as in Java paradigm) appeals to me. The applications I'm working on are totally flexible from a device rendering standpoint - the software looks/works fine on 360x720 to 1080p and up. My biggest complaint about using Microsoft platform for deploying software is that generally a restart update (requiring reboot, to update registries and reload them) is not exactly seamless. And, in the days when I was cranking out Microsoft compatible software, synching and including runtime libraries with the "software package" was a nightmare. I've written interpreters that are stable and don't require frequent updating, and the functionality of my tools is written in my own pseudocode that can be updated live, without having to restart the app or operating system. I could write my entire application in Perl or PHP, but that wastes the opportunity of offloading the CPU burden to the user's machine. That's why my website applications, for now, are 100% Javascript with HTML stubs to load my libraries. If I wanted to explore writing in Java, where and what would be the starting development platform I would load to my desktop? Is there a standard goto place/platform download? |
your client needs to be multi-platform (windows/apple/linux), right? and there's a GUI involved? That sounds like a job for java.
But why does your server need to be multi-platform? Deploy it once on whatever platform you like and then your multi-platform client(s) can communicate with it via a single API. Do you know about docker? It containerizes the entire server environment (kinda like an update-as-you-go VM machine image). So, we care *so little* about multi-platform compatibility server-side, that we don't even make the server compatible with linux in general -- its only compatible inside the docker container, where we've already installed all the dependencies, set up whatever files/directories we need, installed the server (nginx, gunicorn, whatever), etc. The server app can literally *only* run inside a single pre-configured containerized environment. I honestly think its a complete waste of time to build a multi-platform server-side app. BTW you remind me of a lot of older programmers I know -- you make me look like a joke when it comes to writing Java or C that interacts with the OS and uses threads and low-level shit like that, but you're lost and ineffective when it comes to software development with modern frameworks. I have literally no idea how to develop or integrate a runtime library or make a multiplatform GUI app, but I can spin up a fully functional web app in a tenth of the time it takes you just to get your environment set up. Learn python or node, my friend. |
Quote:
RE: Low level "whiz" vs. high level "luddite" (my words) :) ... Your point is well taken, but there is another perspective as well. My first firmware coding project was manually decompiling the Radio Shack/Tandy TRS-80 microcomputer operating system byte by byte (decompilers did not exist then). When the IBM PC came out, they included the entire MS-DOS 1.0 bios source code so programmers could take advantage of their hooks (that was an SDK then). In 1976, I wire wrapped a PC digital controller (based on RCA's Cosmac Elf processor) for an automated house from chip level and programmed it in 256 bytes (using 9 toggle switches for "keyboard"). As much as I appreciate how easily "kitchen sinks" can be included in libraries by checking a box, the gross inefficiency of contemporary high level platforms (eg. Ruby on Rails drives me nuts), only hidden by ever increasing processor power, also has too much hidden payload space for post-9/11 surveillance hooks/traps - something I do not support. The upside to building low level libraries (just once) is knowing exactly what code is in them, and what vulnerabilities they may have. That's why I would never use WordPress or most off the shelf bulletin board software. On the other hand, Python does keep coming up as a good suggestion. I will check out Python. Thanks for your feedback. :) |
One thing to remember is that a python (or nodejs) server-side app is spending 99% of its compute time on external software implemented in C
Python is just a little bridge between the web server (nginx, apache) and the database, which are both (probably/usually) written in C (nginx is C). All python is doing, is parsing some parameters out of the request, using those params to compose and execute some database calls, and then rendering the database response into an HTML template (which is then passed back to nginx) So it really doesnt matter, *at all*, that python is slow and bloated as hell. 99% of the work is done in external software implemented in C. Incidentally, even within python, a lot of the libraries are implemented in C. Scientific computing in python (numpy) runs at C speeds because the actual library is implemented in C and loaded directly into the python runtime (which is also implemented in C). Python (and any modern framework) really just stitches together a whole lot of C code. I hate ruby/rails and yes, its slow and bloated just like python, but again, 99% of compute time in a rails app is spent outside the ruby runtime. Now I'm just rambling -- but python can easily look like a joke to a Java developer because of the global interpreter lock. It literally doesn't support threads at the OS level. That seems insane until you realize that in a python server app, nginx is acting as a proxy in front of many python processes. It doesn't matter that each process is limited to a single OS thread -- we're simply using a completely different paradigm than a Java developer is used to. |
Quote:
Perl can outperform Python, and the main "complaint" about it is "readability". That's no problem for me. I wrote a dynamic MYSQL web content management system in Perl with 20 million web pages - database driven, but automatically cached as HTML in non-peak hours. It handled 6 million visitors over a couple years. That was fun and it worked on a basic VPS without overloading the server. The trick was to NOT use the database in real time. For the server side, I can go with PHP or Perl. I like Perl because I can run it from my desktop without a server for dev purposes. At this point, I'm very interested in exploring Java programming for desktop software and apps. Back in mid-nineties I did some "hello world" level Java tutorials. It's a lot like object oriented C. Thanks very much for your comments. Now it's time to get my hands dirty... :) |
Question about Java Byte Code:
Is it easy to decompile Java Byte Code into source, or more specifically, can Java Byte Code be "hacked" to change/disable functionality of the original code? |
investors are dumping a trillion dollars into the metaverse. just throwing that out there. if you are aiming at a safe coding career for the next decade or so, i'd look there. most of the jobs are paying $200k+.
https://merehead.com/blog/develop-meta-universe/ the tech stack is pretty wide. you can focus in many areas: https://merehead.com/blog/wp-content...ation-code.jpg # |
Quote:
It's nice to see that Java is still hot. |
Quote:
|
Quote:
Thanks. |
Quote:
|
Quote:
Thanks for the information! |
Quote:
|
All times are GMT -7. The time now is 02:53 PM. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc123