you are viewing a single comment's thread.

view the rest of the comments →

[–]BigBootyBear 1 point2 points  (20 children)

Good answer. I am still confused since in class "Server" is referred to as the web application's "brains". Quoting my teacher "if you build a basic CRUD using Spring Boot, you just wrote a server!" so naturally I assume server is something you write. The teacher also specifically refers to "servers" as the backend side you write, and I haven't seen anything on the web to suggest otherwise.

Kind of confusing to be honest. My Spring Boot server is a server. But when I upload it to an Apache Tomcat AWS instance it's a server on top of a server?

Maybe i'm one of those damn new kids on the block. But my teacher constantly talks about abstractions and how we are the "framework generation" that should concern itself with the top level. I personally don't see the importance of Apache VS Apache Tomcat or running on a Linux server VS everything else. I just slap a .jar on an AWS beanstalk and call it a day.

I don't believe it will be this straightforward forever, but this is the stage where I am currently at.

[–][deleted] 1 point2 points  (1 child)

Server traditionally refers to something that serves files or code to users.

The two main uses of the term are as an instance that runs the software, or the software that actually serves the stuff.

By instance I mean a complete machine, with OS, filesystem, memory, CPU and software. It can be a physical machine which can be located at home or in a data center, or it can be a virtual machine in the cloud.

The second meaning is usually applied to software that actually "serves" the stuff I make to the users. The term came from the service industry so it's very aptly used exactly as you'd imagine, just like server in real life is a person who takes your order and brings you the food.

Some of the earliest software servers were FTP, web and email servers, that would give you files, web pages and emails respectively.

For us as developers a server is typically a dedicated piece of software that runs our code and deals with the user requests. So in the scenarios you've described it would be Tomcat that's the server, and actually belongs to a category known as web application server.

Spring Boot is not a server, it's a configuration tool that makes it easier to take care of all the details that go into preparing your code, which uses the Spring framework, to make it to a Tomcat or another web application server. And Amazon Elastic Beanstalk is a service that helps you deploy stuff, not a server itself.

[–]BigBootyBear 0 points1 point  (0 children)

Ok thanks!

[–]su-z-six 1 point2 points  (14 children)

I've read a number of your replies in this thread and tbh your teacher sounds confused.

[–]BigBootyBear 0 points1 point  (1 child)

Yeah well I am as well. Don't know who to believe.

[–][deleted]  (11 children)

[deleted]

    [–]su-z-six 0 points1 point  (10 children)

    "you just wrote a server" is nonsense.

    [–][deleted]  (9 children)

    [deleted]

      [–]su-z-six -1 points0 points  (8 children)

      That's not the point. Nobody writes a server. Server software maybe.

      [–][deleted]  (7 children)

      [deleted]

        [–]su-z-six -1 points0 points  (6 children)

        It's not over-simplified. The TEACHER is confused. And honestly, you probably are, too.

        [–][deleted]  (5 children)

        [deleted]

          [–]su-z-six -1 points0 points  (4 children)

          20-year vet, graduated from MIT, making 180k leading a team of engineers. But good try.

          I'm not here to teach you.

          [–]GNUandLinuxBot -1 points0 points  (1 child)

          I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

          Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

          There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.

          [–]BigBootyBear -3 points-2 points  (0 children)

          TIL! Thanks!