Categorías
Python Versus

Java vs.Python (1): ejemplos de código simple

Algunos desarrolladores han afirmado que Python es más productivo que Java. Es peligroso hacer tal afirmación, porque puede llevar varios días probarlo a fondo. Desde una vista de alto nivel, Java se escribe estáticamente, lo que significa que todos los nombres de variables deben declararse explícitamente. Por el contrario, Python se escribe dinámicamente, lo que significa que no se requiere declaración. Existe un gran debate entre la escritura dinámica y la escritura estática en los lenguajes de programación. Esta publicación no habla de eso. Sin embargo, se debe estar de acuerdo en un punto: Python es un lenguaje interpretado con una sintaxis elegante y eso lo convierte en una muy buena opción para la creación de scripts y el desarrollo rápido de aplicaciones en muchas áreas.

En esta comparación, intentaré cubrir algunos componentes básicos del lenguaje, como cadena, flujo de control, clase, herencia, E / S de archivo, etc. Todos ellos se compararán mediante el uso de ejemplos en paralelo. Espero que esto pueda proporcionar a los programadores de Java una idea general de cómo Python y Java hacen lo mismo de manera diferente. Con un vistazo al código de abajo, podemos fácilmente darnos cuenta de que el código de Python es mucho más corto, aunque algunos «shell de clase» de Java (en Java todo comienza con una definición de clase) no están en la lista. Esta podría ser una de las razones por las que Python puede ser más productivo.

También puede consultar las bibliotecas de Python y los ejemplos de código más populares.

1. Hola mundo
Comience con el programa más simple. Java necesita muchas palabras para imprimir solo una cadena. Este es el primer ejemplo que muestra que Python es más conciso.

Java Pitón
public class Main {
  public static void main(String[] args) {
     System.out.println("hello world");
   }
}
print "hello world";

En primer lugar, hagamos lo que hagamos en Java, debemos comenzar escribiendo una clase y luego poner nuestros métodos deseados dentro. Esto a veces es muy molesto y hace perder tiempo. En Python, simplemente puede comenzar a escribir su código y luego ejecutarlo.

  ArrayList frente a LinkedList frente a vector

2. Operaciones con cadenas

public static void main(String[] args) {
  String test = "compare Java with Python";
	for(String a : test.split(" "))
	System.out.print(a);
}
a="compare Python with Java";
print a.split();

Hay muchas funciones relacionadas con cadenas en Python que son tan buenas o mejores que Java, por ejemplo, lstrip (), rstrip (), etc.

3. Control de flujo

int condition=10;
 
//if
if(condition>10)
	System.out.println("> 10");
else
	System.out.println("<= 10");
 
//while
while(condition>1){
	System.out.println(condition);
	condition--;
}
 
//switch
switch(condition){
case 1: 
System.out.println("is 1"); 
break;
case 2: 
System.out.println("is 2"); 
break;
}
 
//for
for(int i=0; i<10; i++){
	System.out.println(i);
}
condition=10;
 
# if
if condition > 10:
    print ">10";
elif condition == 10:
    print "=10";
else:
    print "<10";        
 
#while
while condition > 1:
    print condition;
    condition = condition-1;
 
#switch
def f(x):
    return {
        1 : 1,
        2 : 2,
    }[x]
print f(condition);
 
#for    
for x in range(1,10):
    print x;

4. Clase y herencia

class Animal{
	private String name;
	public Animal(String name){
		this.name = name;
	}
	public void saySomething(){
		System.out.println("I am " + name);
	}
}
 
class Dog extends Animal{
	public Dog(String name) {
		super(name);
	}	
	public void saySomething(){
		System.out.println("I can bark");
	}
}
 
public class Main {
	public static void main(String[] args) {
		Dog dog = new Dog("Chiwawa");
		dog.saySomething();
 
	}
}
class Animal():
 
        def __init__(self, name):
            self.name = name
 
        def saySomething(self):
            print "I am " + self.name    
 
class Dog(Animal):
        def saySomething(self):
            print "I am "+ self.name 
            + ", and I can bark"
 
dog = Dog("Chiwawa") 
dog.saySomething()

Cuando amplía una clase base, no hay ningún requisito, como definir un constructor explícito para el superconstructor implícito.

5. E / S de archivos

File dir = new File(".");// get current directory
File fin = new File(dir.getCanonicalPath() + File.separator
				+ "Code.txt");
FileInputStream fis = new FileInputStream(fin);
// //Construct the BufferedReader object
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine = null;
while ((aLine = in.readLine()) != null) {
	// //Process each line, here we count empty lines
	if (aLine.trim().length() == 0) {
	}
}
 
// do not forget to close the buffer reader
in.close();
myFile = open("/home/xiaoran/Desktop/test.txt")
 
print myFile.read();

Como podemos ver, hay muchas clases que necesitamos importar para simplemente leer un archivo y, además, tenemos que manejar la excepción lanzada por algunos métodos. En Python, son dos líneas.

6. Colecciones

import java.util.ArrayList;
 
public class Main {
	public static void main(String[] args) {
		ArrayList<String> al = new ArrayList<String>();
		al.add("a");
		al.add("b");
		al.add("c");
		System.out.println(al);
	}
}
aList = []
aList.append("a");
aList.append("b");
aList.append("c");
print aList;

Estas comparaciones solo se encuentran en la superficie de Python, para la programación real, el documento de Python sigue siendo el mejor lugar para consultar.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *