• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Bear Bibeault
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Junilu Lacar
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Jj Roberts
  • Tim Holloway
  • Piet Souris
Bartenders:
  • Himai Minh
  • Carey Brown
  • salvin francis

100% Java operating system

 
Ranch Hand
Posts: 116
2
Eclipse IDE PHP Java
  • Likes 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This thread has gone a little bit on a tangent away from the project itself. I think we need to take a step back, start over, and change the tone to be positive and happy so there is no feeling of being defensive. I for one am going to hold off on any criticism until I know more.

I think there is potential in this project (if for nothing else, a way to experiment to find new ways of doing things) but we haven’t really gotten to the potential yet. I'm intrigued by the thought of experimenting with new operating systems to find a new way to interact with technology.

Alexey, I’d like to hear you talk about your feelings about the project itself, what got you started in it, and what gets you excited about it. What keeps you coming back every day to work on it? I know some has been said throughout this thread but I think it is getting lost in the back and forth. It will be nice to hear your thoughts and your excitement here.

Once we have a positive exciting discussion going about creating new things and coming up with new ways to interact with technology, I think the motivation will build for everybody to read the documentation for more information. At least to use the table of contents in the doc to jump to sections they find interesting.

I hope this helps us get to the interesting and exciting parts of the project.
 
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Scott Winterbourne wrote:I for one am going to hold off on any criticism until I know more.


I am not feeling bad when there is some reasonable critics. It's even interesting to find something unnoticed.

Scott Winterbourne wrote:what got you started in it, and what gets you excited about it


For me it was a lot of new knowledge about system internals. And all the internals was in absolute control - it is interesting feeling. But in the beginning there was some irritation when I looked at jNode code (it's another Java OS) and had one thought 'why it is so overarchitected?'. And it's documentation was a bunch of forum posts while the forum had (and has) no registration available.

It is nice to make something serious unhurriedly and get some interesting result. But for me it is not that happiness of a youngster when he is starting first servlet and shouts wow!

And in the end - if the technology will gain momentum it is really very promising. My excitement was partially with the future.

Scott Winterbourne wrote:I think the motivation will build for everybody to read the documentation for more information.


In fact the motivation in a form of excitement is a short living thing. I think it is experience that people can get here. And excitement part waits ahead of us when the system will be able to run Tomcat, for example. The speed should be very nice. And it is not a problem to integrate the Tomcat with the system in a relatively tight manner if the speed still be needed. And there is no requirement to change Java environment for C. Just the same Java. And Tomcat driven cloud of web servers in absolute control. Google's AppEngine will suck
 
Scott Winterbourne
Ranch Hand
Posts: 116
2
Eclipse IDE PHP Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Alexey Bezrodnov wrote:In fact the motivation in a form of excitement is a short living thing. I think it is experience that people can get here. And excitement part waits ahead of us when the system will be able to run Tomcat, for example.



I do completely agree. You do have to remember though that everybody on these forums have many many other things going on. They are working full time, have families, school, their own personal or open source projects.

There has to be some level of excitement initially to get people to want to put asside their busy lives for just a moment (or many moments) and look into what this project has to offer. Once people have bought into this project, THEN the motivation will be working toward the end result and to learing more. Until they have that long term motivation with the project, they won't have any reason to put asside any of their other things they are working on to even look into this to see what it is.

That's my only point with saying creating some excitement for people up front might be a good thing and needed to gain more interest.
 
Scott Winterbourne
Ranch Hand
Posts: 116
2
Eclipse IDE PHP Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Also, FYI to all that are reading this and see the documentation as too long and daunting. There is a "In Short:" paragaraph at the end of each section of the documentation the summarizes that section of documentation. If you want a summarized version of each section you can scroll to the bottom of each section and find the bold In Short: text, read the short 1 paragraph summary and scroll to the next.
 
Marshal
Posts: 26098
71
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Alexey Bezrodnov wrote:I am not feeling bad when there is some reasonable critics.



Alexey, I apologize for not being a reasonable critic. Seriously, I'm not that interested in the project. So please disregard my posts and carry on discussing with others who are more interested.
 
Alexey Bezrodnov
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Scott Winterbourne wrote:You do have to remember though that everybody on these forums have many many other things going on. They are working full time, have families, school, their own personal or open source projects.


I know this and there is no illusions about enthusiastic masses doing a great system. But among thousands usually we can meet one or two really benevolent persons. It is a base for everything new and exciting in the world.

Scott Winterbourne wrote:Once people have bought into this project, THEN the motivation will be working toward the end result

Yes, I agree. I'll try to improve start page.
 
Alexey Bezrodnov
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Paul Clapham wrote:I apologize for not being a reasonable critic


Accepted and appreciated.
 
Bartender
Posts: 10777
71
Hibernate Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Scott Winterbourne wrote:I think there is potential in this project (if for nothing else, a way to experiment to find new ways of doing things)


Now there I can't disagree at all (and I think I said as much at the end of my first post). I've been working on a project for creating a directly-indexed dynamic Map for keys of unlimited (or near-unlimited) size without using hashes, and it's been fascinating; but I have no doubt that I'm covering ground already trodden.

The problem here Alexey (I think), is that you're dealing with practitioners, not theorists. We might be able to speculate how a Java-based OS would help, but we want to see concrete information on how one would use it before we can make a judgement.

My 2¢

Winston
 
Alexey Bezrodnov
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Winston Gutkowski wrote:but we want to see concrete information on how one would use it before we can make a judgement.


Efficient computing, in short.

Can you reduce costs of having a virtual web server? But it's possible, the description is here - http://www.jembryos.org.
 
Alexey Bezrodnov
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
System notice - start page has been updated. Any ideas?
 
Winston Gutkowski
Bartender
Posts: 10777
71
Hibernate Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Alexey Bezrodnov wrote:System notice - start page has been updated. Any ideas?


A couple (and you may not like them ):

1. Get a good English-Russian translator who speaks both languages fluently (or, at the very least understands enough Russian to get the context), and can translate your ideas into English. Your opening statement is an improvement, but contains many (understandable) mistakes; not the least of which is that it sounds "passive" (in grammatical terms; not in intent). English has one of the largest - possibly the largest - vocabularies of any European language, so there are MANY ways to 'say' things, and ironically this means that short and sharp (and active) are usually the best. Don't use long sentences when a short one will do; and don't use long words when a short one is available. The problem is that even many English people don't know how to write this way.

2. Come up with a "mission statement". This is similar to Tim's "elevator pitch", but allows for a bit more detail, and they usually follow similar patterns:
  • What it IS.
  • What it DOES (for the reader).
  • (optional) WHY other OS's don't match up (ie: why you started this project in the first place).
  • and it should usually be 20 lines or less (10 is better). And if you can come up with a 'slogan' (eg, Nike's "just DO it") at the same time? - even better.

    HIH

    Winston (son of an English teacher )
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:A couple ...
    Winston (son of an English teacher )


    Thanks, I'll try to learn
     
    Ranch Hand
    Posts: 121
    12
    • Likes 2
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I have downloaded project and looked into the code. Now I have some questions.

    1. How would you implement real-time priority for some pieces of code? I am not referring to a processes or threads, only for some specific pieces of code (inside some drivers). Many hardware protocols use timings for the proper operations. That timings may be indistinguishable by the human user but can be detected by other hardware. So you can't use same approaches to JVM implementations as you use for the common java. You may require a new "hardware". But this will lead to a completely new infrastructure where you can't use any piece of existing hardware. And you even can't reuse Internet. Standard TCP/IP stack uses delays to trim transmission speed. So you may get performance far beyond optimal. And one small hint. This question is not about thread/process schedulers. This question is about GC.

    2. Which memory mode (flat, virtual, segmented) do you use? Do you plan to support any kind of virtual memory to allow applications (and system) to exceed physical amount of memory? If yes, how would you mark some entities (whatever entity can mean) as "unloadable"? Its funny to see a disk driver swapped out on it's disk but not useful at all. And you can't use a classical "region-based" approach. At least without heavy tuning. In a classical approach you usually operate with a continuous memory regions. But in java you have no such regions, you have objects with many references. So providing proper memory-locking API can be very tricky but is unavoidable on a current hardware.

    3. I have seen a "new operator" somewhere inside a keyboard driver. It wasn't in the constructor. And it wasn't in a try/catch block. This makes me uneasy. What if there is no more free memory? This driver will miserably fail leaving hardware in an unknown state. Ok, this was in a polling keyboard driver. But what will happen in an interrupt handler? Exception in the handler may kill a system thread. That's not nice at all. There are different approaches to resource management on a system level. Which one would you choose? Can you write a more real-world driver using any of the approaches? Would it be convenient for other java developers?

    I am not criticizing your project. I am just point on some potential problems. And these problems should be handled at an earliest stages of the development. Otherwise it will cost to much to fix them later (this may and will require complete rewrite of several system parts and almost all drivers).
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Maxim Karvonen wrote:How would you implement real-time priority for some pieces of code?


    Basicly - just as such things can be implemented using C/C++.

    Maxim Karvonen wrote:So you can't use same approaches to JVM implementations as you use for the common java.


    Why do you think it is impossible? Especially if the delay is comparable to milliseconds.

    Maxim Karvonen wrote:Standard TCP/IP stack uses delays to trim transmission speed.


    Is the timing starting from 100 mks a reasonable delay? If so, then there's even no need to add another hardware timer.

    Maxim Karvonen wrote:And one small hint. This question is not about thread/process schedulers. This question is about GC.


    GC is completely manageable - that's why I see no problems here. It is possible to tune GC's runtime to be within a few milliseconds if needed and such short delays are the answer to the hinted question.

    Maxim Karvonen wrote:Which memory mode (flat, virtual, segmented) do you use?


    The flat memory model is used.

    Maxim Karvonen wrote:Do you plan to support any kind of virtual memory to allow applications (and system) to exceed physical amount of memory?


    For now it is not planned. It depends on the target system goals. If it will be something like virtual servers or cloud computing (most useful case) then it seems the virtual memory solutions are just useless for such environment.

    Maxim Karvonen wrote:In a classical approach you usually operate with a continuous memory regions. But in java you have no such regions, you have objects with many references. So providing proper memory-locking API can be very tricky but is unavoidable on a current hardware.


    Do not see a problem again. Objects and references are always within some range of memory addresses - what's wrong with such regions of a continuous memory?

    Maxim Karvonen wrote:I have seen a "new operator" somewhere inside a keyboard driver. It wasn't in the constructor. And it wasn't in a try/catch block.


    Currently the driver failure is managed in a form of driver developer recommendations (see documentation) not to use such things as new operator within predefined critical sections. In case of exceptions, uncaught by a driver, the driver invocation thread catches them and just finishes the current unit of driver's work. Next time an interrupt occurs the driver will be invoked again.

    Maxim Karvonen wrote:There are different approaches to resource management on a system level.


    Yes, but is there a particular problem with any?

    Maxim Karvonen wrote:Which one would you choose?


    I've chosen the approach described in the driver part of the documentation. I'm not sure I can tell you it's name in your terms, so please tell me what a particular approach you are interested in.

    Maxim Karvonen wrote:Can you write a more real-world driver using any of the approaches?


    What is wrong with the current implementation? Where does it fail to achieve a real-world requirements?

    Maxim Karvonen wrote:Would it be convenient for other java developers?


    For now I see no problem for any developer, so may be you should speak more correctly?

    Maxim Karvonen wrote:I am not criticizing your project.


    I am open for any reasonable critics. Even more correctly - there's just one thing - the discussion - I see profitable for all.
     
    Rancher
    Posts: 2759
    32
    Eclipse IDE Spring Tomcat Server
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I know many people have harped on the bad documentation, and I don't mean to pile on. Just want to make a suggestion: Pictures are universal, and interesting. Words are confusing and boring. As they say, a picture speaks a thousand words. It might help other people what you are trying to do if you draw some diagrams
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Jayesh A Lalwani wrote:Pictures are universal, and interesting. Words are confusing and boring.

    Yes, pictures are nice. But while there are no pictures (I hope they will be some day), what do you think about reading just 9 lines of text in the content table under 'Architecture' topic? Yes, there are also 7 nested lines, and in total we get 16 lines, but may be it is not so hard to read even 16 short lines of text? And after clicking on the reference in the table of contents you will see not only plain text, but also a bit of bulleted lists. I know, the list is not as fancy as picture, but if there would be a picture with the same words as in the list and with differently colored rectangles - would it be more useful?

    However, I absolutely agree that advertising is not possible without pictures. Unfortunately, the advertising unable to make a person wise or experienced. And the only way to achieve such goal is the person's efforts to read and understand something useful. Even if the reading is a bit tedious.

    One more point - with Android, for example, you can do many cool things and there are a lot of nicely looking pictures about it. But ... Do you understand the Android? If you understand - is it hard enough to read just 16 sections about system architecture? And if you don't - was those happy pictures of any help for the Android understanding? May be it's better to start with some efforts first?
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    And once more about it. If the only question that bothers you after reading some text is 'what's that all about?', then, first, you should ask yourself about your motivation. If the motivation was not just a search for fancy reading, then it is better to look for a reason that prevents you from understanding the text. The simple answer, like 'there are no pictures', should not hide a real reason from you. And after you find the reason it will be nice to think about some actions for the reason to disappear. One way to kill many reasons is to ask somebody else in a hope the answer will help you. But may be you can find another way?
     
    Rancher
    Posts: 43016
    76
    • Likes 2
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Alexey Bezrodnov wrote:One more point - with Android, for example, you can do many cool things and there are a lot of nicely looking pictures about it. But ... Do you understand the Android? ... And if you don't - was those happy pictures of any help for the Android understanding?


    Google's Android documentation does not contain a whole lot of images (except screenshots in the GUI section, for obvious reasons), but the ones it does contain most definitely help understanding. But "happy" is not an adjective I would use to describe those, so maybe you're talking about something else.

    And once more about it. If the only question that bothers you after reading some text is 'what's that all about?', then, first, you should ask yourself about your motivation.


    Motivation about something unknown doesn't happen on its own. If I'm interested to learn what X is about, and start reading about it like you describe, and still find myself not knowing what X is after spending some amount of time on it, I will not keep on going indefinitely - I (along with everybody else) will stop at some point, some people sooner, some later. It is unreasonable to advise people to just continue reading - they won't, and that's independent of the subject matter. Those "16 lines" you mention are more than 15 pages if I paste them into a word processor; I think you will lose most readers long before finishing that.

    After reading the "in short" sections I came away with these insights: It's a 100% Java OS. Applications are Java code. There are low-level Java-like facilities for hardware access and the like. The rest sounded like any other OS, more or less, adapted for systems programming in Java. But what almost killed my motivation even to read those short sections was "A simple system delivers easy entrance path for all interested developers and increases the system popularity." I find both parts unlikely, but more importantly, it makes it sound like a major consideration of the architecture were pragmatic aspects rather than technical merit - not something I would consider a solid (or interesting, although that's subjective) foundation for a project as complex as this one.
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Ulf Dittmer wrote:Google's Android documentation does not contain a whole lot of images (except screenshots in the GUI section, for obvious reasons)

    That's exactly what I want to say - amount of fancy pictures just doesn't matter.

    Ulf Dittmer wrote:but the ones it does contain most definitely help understanding.

    Sometime. However, inclusion of pictures is not baned forever from jEmbryoS documentation.

    Ulf Dittmer wrote:If I'm interested to learn what X is about, and start reading about it like you describe, and still find myself not knowing what X is after spending some amount of time on it

    I see the point in your words. It was unnoticed by me. The point is - all complaining readers just do not see a big picture of a software world. The first thing for them to read about is The Computer. It is really missed subject! And it really worth to read once more about it. The next subject all busy readers should be interested in is The Operating System. It is another very enlightening subject many Java developers passed by without notice. And only if there is a minimal background in the computer science, only then the subject of Java OS will bring you something really useful.

    Ulf Dittmer wrote:But what almost killed my motivation even to read those short sections was "A simple system delivers easy entrance path for all interested developers and increases the system popularity." I find both parts unlikely, but more importantly, it makes it sound like a major consideration of the architecture were pragmatic aspects rather than technical merit - not something I would consider a solid (or interesting, although that's subjective) foundation for a project as complex as this one.

    But the system is really simple! However, the sound foundation for your understanding of such really simple systems is not built yet. Please, consider reading some information from the links above. But if there is no drive in your mind when an information requires some thoughts, then I just can not help you, sorry.
     
    Winston Gutkowski
    Bartender
    Posts: 10777
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Alexey Bezrodnov wrote:The point is - all complaining readers just do not see a big picture of a software world.


    We don't? Oddly enough, that was one of the things I was thinking about your idea - it seems too narrowly focused to me.

    Just to give you some idea of my background: 37 years in computing; half a dozen languages between COBOL and Java; probably a dozen OS's, from ICL George 3 to Linux; databases from IMS to Oracle; and 15 years as a system admin ... And I'm by NO means the "senior" here.

    I don't say it to boast (well, maybe a bit ), but you should be very careful about assuming that all our complaints are because we "don't see the big picture".

    Winston
     
    Ulf Dittmer
    Rancher
    Posts: 43016
    76
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    If you want to be condescending and snarky, instead of thanking people for taking time to give the feedback you asked for, then this is definitely not the right place where to advertise your project. I suggest you consider continuing the PR campaign elsewhere.
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:Oddly enough, that was one of the things I was thinking about your idea - it seems too narrowly focused to me.

    Yes, it's focus is on the operating system world. It's not a usual place for programmers to play at. But the whole picture without an operating system is really incomplete. Because when somebody's concern is only about how to show something on a web page or to get something from a database the whole picture is effectively excluded from the view. It's just bothering details that are not very useful for displaying some data on a web page. But there are a bit different world of 'developers for developers'. They create databases, application and web servers, browsers and other user interfaces. And all of a sudden - many of them write their systems in Java. And all those people are the main benefit gainers from new technologies like Java Operating System. Unfortunately there was just one such person until now, who was trying to understand the jEmbryoS applicability for a system development. That's why I am saying about a missing big picture.

    Winston Gutkowski wrote:And I'm by NO means the "senior" here.

    As I understand the senior stuff is just about getting the whole picture. If you feel aggrieved when I'm saying about missed picture then, please, pay attention to the following - may be it's not you that I was saying about? Or may be there really are some blind spots even in your picture? I, personally, never think I have a whole picture and then I will never offence if somebody supposes I have missed some part of the picture. However, I have my job positions on more than senior levels.
     
    Jayesh A Lalwani
    Rancher
    Posts: 2759
    32
    Eclipse IDE Spring Tomcat Server
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Wait a minute! Design diagrams are "fancy pictures", now? I don't have words Rome wasn't built in a day, but if the builders of Rome had considered architectural drawings "fancy pictures" then Rome wouldn't have been built at all! What kind of engineer calls diagrams "fancy pictures"? I don;t know what kind of word you live in. In almost all engineering disciplines, engineers communicate through "fancy pictures"
     
    Winston Gutkowski
    Bartender
    Posts: 10777
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Alexey Bezrodnov wrote:Yes, it's focus is on the operating system world...


    Yes, but it's not just based on the OS; it's based on the notion (unless I've completely misconstrued this discussion) that a Java-based OS is necessarily a good thing. And while I can certainly understand the appeal of a layer of indirection that allows some sort of "commonOS" to be loaded on various different machines that provides "suppliers" with an "Operating System" that presents a common face to the world, I fear you have an awful lot of inertia and legacy to get past before it can become a reality; not the least of which is the different interpretation of something as simple as a 'newline'.

    The whole point of Java is that it is platform-independent, so it's simply not very good at dealing with machine (or OS, or driver) -centric stuff such as printing or handling proprietary document formats like Word. It's actually a testament to the ingenuity of Java programmers that such libraries exist; but TBH, my advice when I see someone struggling with very intricate POI stuff is usually to say: "You know what? Use Word. It may not be Java, but it's actually the program that was written to deal with Word documents."

    Winston
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Jayesh A Lalwani wrote:Design diagrams are "fancy pictures", now?

    If you want to connect everything you know about pictures to my words above - it's up to you to invent a name. But even if we mix all concepts in order to respect your wish, then again I can name the UML stuff and all the like just a fancy pictures in case of primitive collecting all the classes in one long sheet. Or do you have an example of very informative UML which can replace just a simple list in case of high level architectural design?
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:it's based on the notion (unless I've completely misconstrued this discussion) that a Java-based OS is necessarily a good thing.


    Yes, I agree.

    Winston Gutkowski wrote:And while I can certainly understand the appeal of a layer of indirection that allows some sort of "commonOS" to be loaded on various different machines that provides "suppliers" with an "Operating System" that presents a common face to the world, I fear you have an awful lot of inertia and legacy to get past before it can become a reality; not the least of which is the different interpretation of something as simple as a 'newline'.


    It is not a common OS. The Windows or Linux are very common, but does it help with the simplicity of an OS? Or does it help with the hardware innovations? In both cases these OSes are just stoppers in the way of simplicity and innovation. But Java OS is different in the way it works with hardware - it really hides hardware differences from developers using machine independent bytecode. In such a way it stimulates a lot of vendors to make a hardware for millions of Java programs in the world. And there is no legacy problem with such approach.

    Winston Gutkowski wrote:The whole point of Java is that it is platform-independent, so it's simply not very good at dealing with machine (or OS, or driver) -centric stuff such as printing or handling proprietary document formats like Word.


    The printing is absolutely possible to wrap into a Java library and having such library in effect to reach the platform independence goal. And the Word document handlers are already here - it is possible to work with the Word documents in Java on any platform.

    Winston Gutkowski wrote:Use Word. It may not be Java, but it's actually the program that was written to deal with Word documents.


    But if the preferred user environment is the Linux? Such advice just closes the door in the way of using Word documents.
     
    Winston Gutkowski
    Bartender
    Posts: 10777
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Alexey Bezrodnov wrote:The printing is absolutely possible to wrap into a Java library and having such library in effect to reach the platform independence goal. And the Word document handlers are already here - it is possible to work with the Word documents in Java on any platform.


    Have you actually dealt with either? Sure, there are Java libraries around for basic printing and scheduling, but nothing (at least that I know of) that give you the depth of control of something like lp. Same with stuff like POI: There are things that you simply cannot do (especially with Excel), because the port is partial, and based on legacy code of programs that Microsoft guards very closely.

    Winston
     
    Winston Gutkowski
    Bartender
    Posts: 10777
    71
    Hibernate Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Alexey Bezrodnov wrote:But if the preferred user environment is the Linux? Such advice just closes the door in the way of using Word documents.


    You've obviously never heard of Wine - although I have to admit, I've never tried something that low-level with it.

    Winston
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:Have you actually dealt with either?


    Yes. With the printing I had no problems, but may be my case was too simple.

    Winston Gutkowski wrote:There are things that you simply cannot do (especially with Excel), because the port is partial, and based on legacy code of programs that Microsoft guards very closely.


    Yes, there are some problems. But it's not Java problems. Any language is inefficient in the area where Microsoft hides it's source code.
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:You've obviously never heard of Wine


    But why I should change one incomplete solution for another? For me it is much better to use some Java library than switching to Linux and trying to use something like Wine
     
    Scott Winterbourne
    Ranch Hand
    Posts: 116
    2
    Eclipse IDE PHP Java
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Winston Gutkowski wrote:You've obviously never heard of Wine - although I have to admit, I've never tried something that low-level with it.


    I had never heard of this either. Very interesting, I'll take a look at it also

    I'm glad to see some discussion on the project itself. Thanks for the cow, whoever gave it to me. I shall proudly drive him around the ranch .
     
    Sheriff
    Posts: 4899
    318
    IntelliJ IDE Python Java Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I've been thinking about this for a few days and I have something that I can't get my head around. It's to do with the claim that this OS solves the "legacy hardware" problem by writing it in the "platform independent" Java language.

    Here's my understanding of how a normal Java application is created and run.

    - Write Java code
    - Compile it into bytecode using a JDK
    - Run bytecode using a JRE that is running on my OS

    So for a 100% Java OS. Here's where I get stuck

    - Write 100% Java OS in Java
    - Compile it into bytecode using a JDK
    - Run bytecode how?

    The JRE is a platform specific piece of software who's task is to translate the bytecode into something that my OS running the JRE can understand. But if there's no underlying OS then what runs the Java OS?

    From reading your other thread over on osdev.org it sounds like you have written something yourself that will translate/compile that bytecode down to machine instructions? (Just for x86 it seems) If this is the case then have you solved the "legacy hardware" problem at all as we'll still have to go and write compilers/interpreters for all of those platforms anyway?
     
    Alexey Bezrodnov
    Ranch Hand
    Posts: 73
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Tim Cooke wrote:Here's my understanding of how a normal Java application is created and run.

    - Write Java code
    - Compile it into bytecode using a JDK
    - Run bytecode using a JRE that is running on my OS


    Yes, it's like this, but a bit incomplete. There are very important parts of JRE. And they should not be hidden within a big 'something'. In particular they are useful to answer next question.

    Tim Cooke wrote:So for a 100% Java OS. Here's where I get stuck

    - Write 100% Java OS in Java
    - Compile it into bytecode using a JDK
    - Run bytecode how?

    The JRE is a platform specific piece of software who's task is to translate the bytecode into something that my OS running the JRE can understand. But if there's no underlying OS then what runs the Java OS?


    If we split the JRE into many parts, then there actually not so many things needed to run a program. In fact, the program is capable to run by itself. But in case of high level language any program needs help from a compiler. Would it be C, or Java, or whatever. So the trick is in attaching a compiler to the program execution environment. In case of jEmbryoS the compiler is attached at the moment a Java program starts. But it is the case for 'plain' Java program, not the OS code. For OS code the case is a bit different - the compiler is attached at the system build time. Next, it is just required to write system image to disk in some predefined order, and that's all - everything else is done by the x86 based computer and it's BIOS.

    Tim Cooke wrote:From reading your other thread over on osdev.org it sounds like you have written something yourself that will translate/compile that bytecode down to machine instructions? (Just for x86 it seems)


    Yes.

    Tim Cooke wrote:If this is the case then have you solved the "legacy hardware" problem at all as we'll still have to go and write compilers/interpreters for all of those platforms anyway?


    Yes, my claim - the problem is solved. And even if we have to write a new compiler for a new hardware, but the compiler is just a tiny bit of a huge software universe. It means now it is required to write just one compiler for a new hardware. And you can compare it with rewriting all software for Windows or Linux to be able to work on some new processor.

    In the history, when there was no reliable ships, the America was not even known. But when people had managed to improve their ships enough - the result was amazing! Now we have really different world. Isn't it different? But it requires very different ships.
     
    I can't beleive you just said that. Now I need to calm down with this tiny ad:
    the value of filler advertising in 2020
    https://coderanch.com/t/730886/filler-advertising
    reply
      Bookmark Topic Watch Topic
    • New Topic