Basic informations about frameworks and Java IDE's



Declarative :

Declarative s a programming paradigm which can be building the structure and elements of computer programs, and the logic of expressing compilation without its control flow. 
Domain-specific languages(DSLs), QML, subset of SQL (SELECT queries) are few examples of declaratives. And also markup languages like HTML, MXML, XAML are also use declarative.
Here are some advantages of Declarative.
  • Very quick
  • Associated with functional programming
  • Minimize manual handling of state
  • Less side effects

Imperative

IS a programming paradigm. This is used to change program’s state.
This is complicated than declarative, non-scalable and also more error-pron than declarative.




Difference between procedural programming and functional programming

Procedural:
·        Routine’s output doesn’t always have a direct correlation with input
·        Everything done in specific order
·        Execution of routine may have side effects
·        Tends to emphasize implementing in linear fashion
Functional:
·        Recursive
·        Always return same output for given input
·        Order of evaluation undefined
·        Must be stateless
·        Good fit for parallel execution
So finally, Functional language allows mathematical functions and the function logically evaluated. Procedural language performs a sequence of sequential step calls continuation passing style.


Lambda calculus and Lambda expressions in functional programming

Lambda calculus:

Lambda calculus is a framework. It is developed by Alonzo Church in 1930 to study computations with functions.

  • Function creation − Church introduced the notation λx.E to denote a function in which ‘x’ is a formal argument and ‘E’ is the functional body. These functions can be of without names and single arguments.
  • Function application − Church used the notation E1.E2 to denote the application of function E1 to actual argument E2. And all the functions are on single argument.
Syntax of Lambda Calculus:
            E :: = x(variables)
| E1 E2(function application)
| λx.E(function creation)
Where λx.E is called Lambda abstraction and E is known as λ-expressions.

Lambda expression:
Lambda expression is a way of supporting functional programming.

So let’s get an example to get an idea about this.
1
2
3
public void welcome(String language) {
      System.out.println("Welcome to world of " + language + "Programming Language");

}
will look like below in a lambda expression:
1
2
3
(String language) -> {
       System.out.println("Welcome to world of " + language + "Programming Language");

}

So the difference is:
o   We used new operator -> to called Lambda expression
o   Removed access specifier and return type from method definition 

Let’s see some more examples.

A lambda expression with no parameters
1

() -> System.out.println("Lambda expression with no parameters.");

A lambda expression with one parameter
1

(String s) -> System.out.println("lambda expression with one parameter."+s);

Another lambda expression with one parameter
1

s -> System.out.println("lambda expression with one parameter."+s);

A lambda expression with 2 parameters (Note parenthesis is required for 2 or more parameters)
1

(s1, s2) -> System.out.println("A lambda expression with 2 parameters." + s1 + s2);



 

Features of Object Oriented Programming

  • Abstraction-    provide only the important details to the outside and other background details are hidden. And the abstract methods  implement in parent class.
  • Encapsulation - Wrapping up the data and functions into single unit called encapsulation. The  data can be bind as attributes and methods.
  • Inheritance-  We can create children classes(sub classes) using parent classes. So in here children class can use any method or attribute(in public property). And also children class can modify these methods. I mean can add more calculations, more printouts like wise. And attributes.   When we  inherit a child class from a parent class we use "extends" keyword in  child class.( class Cat extends Animal) 
  • Polymorphism -  We can use same method in different classes(from parent class to sub class only.That mean there should be an inherit). This process is called as Overriding. The other feature is Overloading. This feature allows a class to have more than one method in same name if the argument list is different.
                                                                                                                                  
Differences between event-driven programming and other programming paradigms
  
Event-driven programming is a programming paradigm. It is determined the flow of program execution of the events.
e.g.:  A user action like a key press or mouse click
This is more of an approach rather than a type of language, allow event-driven programs to be created in any languages. So that is the difference between event-driven programming and other programming paradigms.



Software Runtime Architecture

In today we can find so many languages. These languages can be divided in to 3 sub categories according to how they are processed and executed. They are:


•Compiled languages
•Scripting languages
•Markup languages


First let’s move into Compiled languages.
 
It is a programing language; implementations are happened by compilers. Which means the translators generate machine code from the source code. So it is not interpreters, which means that   the source code executes step by step. C, C++, Java, C#, Haskell are examples for this language
In window like languages C, files can be execute directly. And also JAVA, .NET languages files execute in virtual runtime machines.



What is a virtual runtime machine?



 
Virtual runtime machine is an emulation of a computer system. It looks like and performance exactly like a physical machine. But it is in inside of a physical machine and
use hardware, software and other features and act like real machine. So It based on computer architecture.

With the functionalities, there are different kinds of Virtual machines. They are,


1)      System virtual machines.
Provide a substitute for a real machine. To execute entire OS VM provide every functional requirement. This can be used to share and manage hardware, allowing multiple different environments like windows and Linux in same physical machine.
2)      Process virtual machines.
This machines are used to execute programs in platform-different environment.

KVM, VMware Workstation, VMware Fusion, Hyper-V, Windows Virtual PC, Xen are few examples for Virtual machines.


Now Let’s talk about Scripting Languages.
 
This is also a programming language and this support scripts. Scripting languages are often interpreted.  A scripting language can be known as domain-specific language for some environments. This is also known as an extension language. 

Scripting can be including in software applications, web pages within a web browser, embedded systems etc.

In scripting language source is directly executed. It’s not compiled.
At the execution time a run time machine interrupt the code.

For example, we can get PHP, JS


Now let’s talk about Markup language.
 
In markup language there is no execution process.
Tools like HTML, XML have the knowledge to understand the language and generate the output.



The process of browser rending HTML


First let’s identify what is a web browser.

A web browser is small software that load file from a local disk and display to the user.

 So when user write  some HTML and try to open it using web browser and the browser reads the raw bytes of HTML that user has try to open from the hard disk.
 
 














    After the browser received the raw bytes, the browser converts it into characters. Then user  can see the characters of the code that user has been written. After that the character’s convert into tokens. Then the tokens convert into nodes. These nodes are linked in a tree data structure called DOM.
After these process we can see the final output.





The way of executing the JS code



Runtime
 
Runtime is the total time period of the program is running. It starts when the program is opened and end after the program is closed or quit. Runtime is mostly used in software development.

During the program is running commonly seen error called “runtime error”. And also syntax errors and compilation errors shown before the program run. 

When the program is running the application is loaded into the RAM. This includes executable files and libraries, frameworks or other files that reference to the program. 

When the program is end, the runtime period is over. So the program used memory space is free and it available for use to other programs.


        Development Tools
 

CASE stands for Computer Aided Software Engineering tools. They are used to SDLC (Software Development Life Cycle) activities by software project managers, analyst to develop systems.

Analysis tools, Design tools, Project management tool, Database management tools are some examples to CASE tools
.
 CASE tools can be divided into 4 parts.
·        Central Repository
·         Upper Case Tools-Used in planning, analysis and design stages of SDLC.
·         Lower Case Tools- Used in implementation, testing and maintenance.
·         Integrated Case Tools- helpful in all stages of SDLC .

CASE software types:-
  • Individual tools –for a specific task .
  •  Workbenches –multiple tools are combined, focusing on specific part of SDLC
  • Environments –combines many tools to support many activities of the SDLC


1     Plugin vs Library vs Frameworks

First let’s talk about Plugins. 
Plugins provide specific tools for development. When developing some projects there are different type of plugins included in source code files, modules, packages, etc.

When executing the software, the plugin invoked via configurations
.
Application support for many reasons. Let’s talk few reasons.

·         to enable third-party developers to create abilities which extend an application
·         to support easily adding new features
·         to reduce the size of an application
·         to separate source code from an application because of incompatible software licenses.

Let’s talk some examples.

   If you wanted to watch a video on a website, you may need a plugin to play it because your browser doesn't have the tools it needs. You can think of it like getting a Blu-ray player for your Blu-ray disc.

   Email clients use plug-ins to decrypt and encrypt email. Pretty Good Privacy is an example of such plug-ins.

   Email clients use plug-ins to decrypt and encrypt email. Pretty Good Privacy is an example of such plug-ins.





Now let’s talk about Libraries.

Libraries provide an API, the coder can use it to develop some features, when writing code. We add libraries to the project. Library includes different functions objects that serves one particular purpose.When the code runs it will be call the library. 


 
In here “import javax.swing.JFrame ” and “import.javax.swing.SwingUtilities” are the library files.
 
  
Now we can talk about Frameworks.
 
A collection of libraries, tools, rules, structures, and control, to build software systems, we can call as a framework. It can be a real or conceptual structure intend to support or help/guide for the building of something that expands the structure into some useful output.

Here are some examples of frameworks that are used for companies.

·         Resource Description Framework
·         Internet Business Framework
·         Sender Policy Framework
·         Zachman framework







Now let’s talk about qualities of framework.

                                                        I.            Frameworks are concrete.

We cannot change framework. Only we can use it. It includes physical components. For an example Java and .NET include concrete components like dlls, jars.

                                                      II.            A Framework is not fully complete.
We cannot use just a Framework. Because it is incomplete. So user need to fill the blanks. And also Framework doesn’t work with alone. User need to be implement the application and deployed along with framework.

                                                    III.            Using a framework is welly helpful and make easy their works.

Ok. Now Let’s move into talk about few more extra questions that occurred, while try to install an IDE to my PC. So here they are.




01)What is the difference between JDK and JRE?
 




In first let's talk about what are these two things.

                        What is the JDK?

The JDK stands for Java Development Kit used for developing Java applets and apps. It is basically a software development environment. JDK includes Java Runtime Environment (JRE), which happens to be a loader/interpreter, a compiler called (javac), a document generator (Javadoc), an archiver (jar), and other tools required in development. And also it includes Java Virtual Machine(JVM), the Java Class Library also. JDK is an implementation of any one of the below given Java Platforms released by Oracle Corporation:

                                                i) Standard Edition Java Platform
                                                ii)Enterprise Edition Java Platform
                                                iii)Micro Edition Java Platform

JVM is responsible for executing the java program line by line hence it is also known as interpreter. However, it cannot be used to create new programs.


                        What is the JRE?

Java Runtime Environment or JRE is also known as Java RTE. The Java Runtime Environment contains core classes and supporting files; it also contains Java Virtual Machine (JVM). It provides the runtime environment.

The JDK is the Java Development Kit, the full-featured SDK for Java. It has everything the JRE has, but also the compiler (javac) and tools (like Javadoc and jdb). It is capable of creating and compiling programs.
                                   
So if you only need to run Java programs in your computer you can only install the JRE. Else If you need to do some Java programming you need to install JDK.

For an example if you are going to deploying a Web Application with JSP you need to use JDK because application server will convert JSP into Java Servlet and compile in JDK servlet.




02)Why you should have to edit PATH after installing JDK?


 

If you do not set the PATH variable, then you have to specify the full path to the executable file every time that you are running it.

            e.g.: - C:\> "C:\Program Files\Java\jdk-10\bin\javac" Myexample.java

So to set the PATH permanently, add the full path of the jdk-10\bin directory to the PATH variable.

            e.g.: -C:\Program Files\Java\jdk-10\bin 

  

03)Why you should need to set JAVA_HOME?




      
JAVA_HOME is an Environment Variable set to the location of the Java directory on your computer. PATH is an internal DOS command that finds the /bin directory of the version of Java that you are using .

By setting the environment variable JAVA_HOME you specify where the JRE, and hence all those runtime resources, are to be found. ... You may also need to put JAVA_HOME\bin early on your path so that if the java.exe spawns a copy of itself (for example to compile a JSP) it picks up the right version. There for we don't need to set the path every time when we compile or run the java program. Once you set the PATH environment variable you can compile and run the Java programs without giving complete javac path every time. This also removes the dependency of saving the .java files into bin directory for compilation.


04)What is the difference between PATH and JAVA_HOME?


JAVA_HOME not used by Java itself. Some third-party program (for example Apache Tomcat) expect one of these environment variables to be set to the installation directory of the JDK or JRE. If you are not using software that requires them, you do not need to set JAVA_HOME. 

PATH is an environment variable used by the operating system (Windows, Mac OS X, Linux) where it will look for native executable programs to run. You should add the bin subdirectory of your JDK installation directory to the PATH, so that you can use the javac and java commands and other JDK tools in a command prompt window.

 
05)Some popular Java IDE’s



 













We can find a lot of Java Ide’s. So I have added few of them below.

§  Intellij IDEA
§  Eclips
§  NetBeans
§  Codenvy
§  Microsoft Visual Studio
§  PyCharm
§  Aptana Studio 3....

Let's identify what are the benefits, features of these IDE's
                       
            1)Intellij IDEA

Intellij IDEA help developers to look deeper inside of the code by providing features like smart completion, chain completion, static member completion, data flow analysis, cross-language refactoring, and language injection. At the same it enables programmers to perform common coding-related tasks in editor’s centric environment without leaving the code.
Further it helps to improve java application development using version control tools, build tools, decompiler, test runner, database tools, and built-in terminal provided by IntelliJ IDEA. And also IDE support various JVM programming languages and help to work with popular java frameworks. Like Java, Scala, Groovy, Clojure and more.

            2)Eclipse

Eclipse has been founded in 2001 since IBM released Eclips as an open source platform. This can be use in both open source and commercial projects.  Now this become a major platform and this use in several languages too.
The main advantage of using Eclipse is the feature whole plethora of plugins, which make it versatile and highly customizable. Eclipse works in background, compiling code and showing errors.
And also we can see few more advantages of Eclipse. Those are multitasking, filtering and debugging. And also it can handle various tasks such as analysis and design, product management, implementation, content development, testing and documentation.

            3) NetBeans

NetBeans developed in the latter half of the 1990's. This emerged as an open source. Now this is a part of Oracle. NetBeans can be used to develop soft wares for all versions of Java ranging from Java ME up to the Enterprise Edition.
                        Like Eclipse, NetBeans also features a variety of plugins.
NetBeans offer various different bundles – 2 C/C++ and PHP editions, a Java SE edition, the Java EE edition, and 1 kitchen sink edition.     And also this offer tool and editor can be used for HTML, PHP, XML, JavaScript, HTML5 and more.
NetBeans feature database support with driver for MySQL, Java DB, PostgreSQL and Oracle.

            4)Codenvy

Codenvy is designed as a cloud-based and on-demand developer workspace. The custom runtime environment provided by the IDE make easier for the programmers to debug and test Java code.
Developers can even use the browser-based editor provided by Codenvy to write high quality code by availing features like code completion, refactoring and syntax highlighting.
The editor also makes easier to programs to build, edit, debug and run different projects.
Sometime use Codenvy to adopt agile methodology and collaborate with stakeholders in the project.

I hope u learnt something from this blog.
 















Comments

Popular posts from this blog

How to run multiple Transformations from one Job in Pentaho

Data Analytics

Distributed Systems