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.
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
|
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
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.
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
Post a Comment